{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "04. Model Evaluation and Hyperparameter Tuning.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "toc_visible": true,
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/Eldave93/Seizure-Detection-Tutorials/blob/master/04.%20Model%20Evaluation%20and%20Hyperparameter%20Tuning.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ec1FIPYtlPu3",
        "colab_type": "text"
      },
      "source": [
        "# 04. Model Evaluation and Hyperparameter Tuning\n",
        "\n",
        "by [David Luke Elliott](https://www.lancaster.ac.uk/psychology/about-us/people/david-elliott)\n",
        "/ [GitHub](https://github.com/Eldave93) "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bz9igSUtQ20l",
        "colab_type": "text"
      },
      "source": [
        "In the previous notebook we had an overview of some of the supervised classifiers available in scikit-learn. \n",
        "\n",
        "In this notebook we are going to look at methods for evaluating the performance of these classifiers and how to tune the hyperparameters of the models to fit our data better. This will enable us to get a better sense of how the models will generalize to unseen data, as well as get greater performance out of our models."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XuFMnYn8d_9K",
        "colab_type": "text"
      },
      "source": [
        "# Environment Set-up\n",
        "\n",
        "First lets start by getting our workspace ready and then loading in the data. As this section below broadly copies some of the data preparation from the previous notebooks, I'm not going to explain it too much."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4_r9IMrB_viA",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import os\n",
        "import gdown\n",
        "FILE_PATH = 'Epil_features.json.gzip'\n",
        "\n",
        "if not os.path.exists(FILE_PATH):\n",
        "    gdown.download('https://drive.google.com/uc?id=143dJfY1_U-p8elbvSzwe0TTHGcDo3PYv', \n",
        "                './'+FILE_PATH, quiet=False)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "D3j6sFdMlJGH",
        "colab_type": "code",
        "outputId": "f1f41bce-f002-4ce0-ca1c-fe677289ae4c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "source": [
        "import matplotlib.pyplot as plt   # for plotting\n",
        "import numpy as np                # arrays\n",
        "import pickle                     # saving python objects\n",
        "import pandas as pd               # dataframes\n",
        "\n",
        "# colours for printing outputs\n",
        "class color:\n",
        "   PURPLE = '\\033[95m'\n",
        "   CYAN = '\\033[96m'\n",
        "   DARKCYAN = '\\033[36m'\n",
        "   BLUE = '\\033[94m'\n",
        "   GREEN = '\\033[92m'\n",
        "   YELLOW = '\\033[93m'\n",
        "   RED = '\\033[91m'\n",
        "   BOLD = '\\033[1m'\n",
        "   UNDERLINE = '\\033[4m'\n",
        "   END = '\\033[0m'\n",
        "\n",
        "# load features dataframe\n",
        "feature_df = pd.read_json(FILE_PATH, orient='index', compression = 'gzip')\n",
        "\n",
        "# display examples of the data\n",
        "display(feature_df.info())\n",
        "display(feature_df.head())"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "Int64Index: 500 entries, 0 to 99\n",
            "Data columns (total 39 columns):\n",
            "CZ|12_30Hz              500 non-null float64\n",
            "CZ|2_4Hz                500 non-null float64\n",
            "CZ|30_70Hz              500 non-null float64\n",
            "CZ|4_8Hz                500 non-null float64\n",
            "CZ|8_12Hz               500 non-null float64\n",
            "CZ|D1_LSWT              500 non-null float64\n",
            "CZ|D1_mean              500 non-null float64\n",
            "CZ|D1_mean_abs          500 non-null float64\n",
            "CZ|D1_ratio             500 non-null float64\n",
            "CZ|D1_std               500 non-null float64\n",
            "CZ|D2_LSWT              500 non-null float64\n",
            "CZ|D2_mean              500 non-null float64\n",
            "CZ|D2_mean_abs          500 non-null float64\n",
            "CZ|D2_ratio             500 non-null float64\n",
            "CZ|D2_std               500 non-null float64\n",
            "CZ|D3_LSWT              500 non-null float64\n",
            "CZ|D3_mean              500 non-null float64\n",
            "CZ|D3_mean_abs          500 non-null float64\n",
            "CZ|D3_ratio             500 non-null float64\n",
            "CZ|D3_std               500 non-null float64\n",
            "CZ|D4_LSWT              500 non-null float64\n",
            "CZ|D4_mean              500 non-null float64\n",
            "CZ|D4_mean_abs          500 non-null float64\n",
            "CZ|D4_ratio             500 non-null float64\n",
            "CZ|D4_std               500 non-null float64\n",
            "CZ|D5_LSWT              500 non-null float64\n",
            "CZ|D5_mean              500 non-null float64\n",
            "CZ|D5_mean_abs          500 non-null float64\n",
            "CZ|D5_ratio             500 non-null float64\n",
            "CZ|D5_std               500 non-null float64\n",
            "CZ|D6_LSWT              500 non-null float64\n",
            "CZ|D6_mean              500 non-null float64\n",
            "CZ|D6_mean_abs          500 non-null float64\n",
            "CZ|D6_ratio             500 non-null float64\n",
            "CZ|D6_std               500 non-null float64\n",
            "CZ|Ratio_3_12/2_30Hz    500 non-null float64\n",
            "class                   500 non-null object\n",
            "file_id                 500 non-null object\n",
            "location                500 non-null object\n",
            "dtypes: float64(36), object(3)\n",
            "memory usage: 156.2+ KB\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "None"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>CZ|12_30Hz</th>\n",
              "      <th>CZ|2_4Hz</th>\n",
              "      <th>CZ|30_70Hz</th>\n",
              "      <th>CZ|4_8Hz</th>\n",
              "      <th>CZ|8_12Hz</th>\n",
              "      <th>CZ|D1_LSWT</th>\n",
              "      <th>CZ|D1_mean</th>\n",
              "      <th>CZ|D1_mean_abs</th>\n",
              "      <th>CZ|D1_ratio</th>\n",
              "      <th>CZ|D1_std</th>\n",
              "      <th>CZ|D2_LSWT</th>\n",
              "      <th>CZ|D2_mean</th>\n",
              "      <th>CZ|D2_mean_abs</th>\n",
              "      <th>CZ|D2_ratio</th>\n",
              "      <th>CZ|D2_std</th>\n",
              "      <th>CZ|D3_LSWT</th>\n",
              "      <th>CZ|D3_mean</th>\n",
              "      <th>CZ|D3_mean_abs</th>\n",
              "      <th>CZ|D3_ratio</th>\n",
              "      <th>CZ|D3_std</th>\n",
              "      <th>CZ|D4_LSWT</th>\n",
              "      <th>CZ|D4_mean</th>\n",
              "      <th>CZ|D4_mean_abs</th>\n",
              "      <th>CZ|D4_ratio</th>\n",
              "      <th>CZ|D4_std</th>\n",
              "      <th>CZ|D5_LSWT</th>\n",
              "      <th>CZ|D5_mean</th>\n",
              "      <th>CZ|D5_mean_abs</th>\n",
              "      <th>CZ|D5_ratio</th>\n",
              "      <th>CZ|D5_std</th>\n",
              "      <th>CZ|D6_LSWT</th>\n",
              "      <th>CZ|D6_mean</th>\n",
              "      <th>CZ|D6_mean_abs</th>\n",
              "      <th>CZ|D6_ratio</th>\n",
              "      <th>CZ|D6_std</th>\n",
              "      <th>CZ|Ratio_3_12/2_30Hz</th>\n",
              "      <th>class</th>\n",
              "      <th>file_id</th>\n",
              "      <th>location</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2.467909</td>\n",
              "      <td>77.429564</td>\n",
              "      <td>0.462172</td>\n",
              "      <td>28.734279</td>\n",
              "      <td>13.102026</td>\n",
              "      <td>3.665018</td>\n",
              "      <td>-0.041443</td>\n",
              "      <td>1.910710</td>\n",
              "      <td>0.362810</td>\n",
              "      <td>2.479045</td>\n",
              "      <td>4.749819</td>\n",
              "      <td>-0.008293</td>\n",
              "      <td>5.266416</td>\n",
              "      <td>0.631333</td>\n",
              "      <td>6.525675</td>\n",
              "      <td>5.805773</td>\n",
              "      <td>0.401766</td>\n",
              "      <td>14.772764</td>\n",
              "      <td>0.877359</td>\n",
              "      <td>18.901216</td>\n",
              "      <td>5.613190</td>\n",
              "      <td>0.572214</td>\n",
              "      <td>28.409123</td>\n",
              "      <td>0.756706</td>\n",
              "      <td>36.437346</td>\n",
              "      <td>6.427250</td>\n",
              "      <td>3.689356</td>\n",
              "      <td>60.313528</td>\n",
              "      <td>1.147393</td>\n",
              "      <td>77.076934</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>-1.758529</td>\n",
              "      <td>76.722313</td>\n",
              "      <td>1.272058</td>\n",
              "      <td>94.954945</td>\n",
              "      <td>0.138219</td>\n",
              "      <td>baseline</td>\n",
              "      <td>F001</td>\n",
              "      <td>intracranial epileptogenic zone</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>29.713494</td>\n",
              "      <td>1060.585071</td>\n",
              "      <td>4.070126</td>\n",
              "      <td>480.018796</td>\n",
              "      <td>201.886582</td>\n",
              "      <td>8.020356</td>\n",
              "      <td>-0.002805</td>\n",
              "      <td>1.761159</td>\n",
              "      <td>0.208105</td>\n",
              "      <td>3.012844</td>\n",
              "      <td>8.062119</td>\n",
              "      <td>0.120496</td>\n",
              "      <td>8.462824</td>\n",
              "      <td>0.514802</td>\n",
              "      <td>18.696915</td>\n",
              "      <td>7.770027</td>\n",
              "      <td>-1.311734</td>\n",
              "      <td>31.116812</td>\n",
              "      <td>0.687953</td>\n",
              "      <td>67.289651</td>\n",
              "      <td>7.388935</td>\n",
              "      <td>-5.458138</td>\n",
              "      <td>81.999218</td>\n",
              "      <td>0.906137</td>\n",
              "      <td>151.139973</td>\n",
              "      <td>8.241056</td>\n",
              "      <td>5.563645</td>\n",
              "      <td>149.869616</td>\n",
              "      <td>0.824373</td>\n",
              "      <td>281.923087</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>-43.528777</td>\n",
              "      <td>281.597393</td>\n",
              "      <td>1.878949</td>\n",
              "      <td>399.209789</td>\n",
              "      <td>0.140057</td>\n",
              "      <td>baseline</td>\n",
              "      <td>F002</td>\n",
              "      <td>intracranial epileptogenic zone</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>4.786972</td>\n",
              "      <td>760.135786</td>\n",
              "      <td>0.928530</td>\n",
              "      <td>165.315144</td>\n",
              "      <td>63.214856</td>\n",
              "      <td>6.515312</td>\n",
              "      <td>-0.010631</td>\n",
              "      <td>1.735392</td>\n",
              "      <td>0.311432</td>\n",
              "      <td>2.990235</td>\n",
              "      <td>6.401762</td>\n",
              "      <td>-0.091654</td>\n",
              "      <td>5.572303</td>\n",
              "      <td>0.507149</td>\n",
              "      <td>8.465748</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>-1.344051</td>\n",
              "      <td>20.239643</td>\n",
              "      <td>0.586233</td>\n",
              "      <td>30.191119</td>\n",
              "      <td>6.532587</td>\n",
              "      <td>-0.038338</td>\n",
              "      <td>63.477531</td>\n",
              "      <td>0.789217</td>\n",
              "      <td>81.178056</td>\n",
              "      <td>7.319687</td>\n",
              "      <td>6.063534</td>\n",
              "      <td>140.622318</td>\n",
              "      <td>0.942136</td>\n",
              "      <td>178.913839</td>\n",
              "      <td>6.864220</td>\n",
              "      <td>3.716867</td>\n",
              "      <td>235.040525</td>\n",
              "      <td>1.671431</td>\n",
              "      <td>298.590769</td>\n",
              "      <td>0.061061</td>\n",
              "      <td>baseline</td>\n",
              "      <td>F011</td>\n",
              "      <td>intracranial epileptogenic zone</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>100</th>\n",
              "      <td>4.395178</td>\n",
              "      <td>413.443671</td>\n",
              "      <td>0.752382</td>\n",
              "      <td>153.195976</td>\n",
              "      <td>52.397931</td>\n",
              "      <td>6.521874</td>\n",
              "      <td>0.028450</td>\n",
              "      <td>1.568284</td>\n",
              "      <td>0.281573</td>\n",
              "      <td>2.040338</td>\n",
              "      <td>6.376845</td>\n",
              "      <td>-0.032461</td>\n",
              "      <td>5.569725</td>\n",
              "      <td>0.493431</td>\n",
              "      <td>7.123942</td>\n",
              "      <td>5.687828</td>\n",
              "      <td>-0.629769</td>\n",
              "      <td>21.007189</td>\n",
              "      <td>0.633938</td>\n",
              "      <td>26.675227</td>\n",
              "      <td>7.262292</td>\n",
              "      <td>3.068884</td>\n",
              "      <td>60.705456</td>\n",
              "      <td>0.843922</td>\n",
              "      <td>77.541635</td>\n",
              "      <td>6.255351</td>\n",
              "      <td>-0.751342</td>\n",
              "      <td>122.857944</td>\n",
              "      <td>1.172407</td>\n",
              "      <td>166.608287</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>-8.863883</td>\n",
              "      <td>148.876959</td>\n",
              "      <td>1.211781</td>\n",
              "      <td>201.195289</td>\n",
              "      <td>0.073089</td>\n",
              "      <td>baseline</td>\n",
              "      <td>N001</td>\n",
              "      <td>intracranial hippocampus</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>101</th>\n",
              "      <td>7.851587</td>\n",
              "      <td>721.653790</td>\n",
              "      <td>1.493076</td>\n",
              "      <td>260.678343</td>\n",
              "      <td>83.752534</td>\n",
              "      <td>7.982971</td>\n",
              "      <td>-0.087572</td>\n",
              "      <td>2.132034</td>\n",
              "      <td>0.265519</td>\n",
              "      <td>2.816092</td>\n",
              "      <td>8.089832</td>\n",
              "      <td>0.146568</td>\n",
              "      <td>8.029698</td>\n",
              "      <td>0.590290</td>\n",
              "      <td>10.741698</td>\n",
              "      <td>8.188312</td>\n",
              "      <td>0.942701</td>\n",
              "      <td>25.073927</td>\n",
              "      <td>0.633819</td>\n",
              "      <td>33.517822</td>\n",
              "      <td>7.872104</td>\n",
              "      <td>-1.859709</td>\n",
              "      <td>71.090412</td>\n",
              "      <td>0.773736</td>\n",
              "      <td>98.099318</td>\n",
              "      <td>0.000000</td>\n",
              "      <td>-23.203895</td>\n",
              "      <td>158.684894</td>\n",
              "      <td>1.313004</td>\n",
              "      <td>213.440482</td>\n",
              "      <td>8.467095</td>\n",
              "      <td>23.505145</td>\n",
              "      <td>170.622285</td>\n",
              "      <td>1.075227</td>\n",
              "      <td>222.681710</td>\n",
              "      <td>0.060733</td>\n",
              "      <td>baseline</td>\n",
              "      <td>N002</td>\n",
              "      <td>intracranial hippocampus</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "     CZ|12_30Hz     CZ|2_4Hz  ...  file_id                         location\n",
              "0      2.467909    77.429564  ...     F001  intracranial epileptogenic zone\n",
              "1     29.713494  1060.585071  ...     F002  intracranial epileptogenic zone\n",
              "10     4.786972   760.135786  ...     F011  intracranial epileptogenic zone\n",
              "100    4.395178   413.443671  ...     N001         intracranial hippocampus\n",
              "101    7.851587   721.653790  ...     N002         intracranial hippocampus\n",
              "\n",
              "[5 rows x 39 columns]"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vdfxfbqVoozj",
        "colab_type": "code",
        "outputId": "1c7417b0-5138-47d3-aa81-da54b3032b5b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 55
        }
      },
      "source": [
        "from sklearn.preprocessing import LabelEncoder\n",
        "from sklearn.model_selection import train_test_split\n",
        "\n",
        "TEST_SIZE = 0.2\n",
        "RANDOM_STATE = 0\n",
        "\n",
        "feature_reduced = feature_df[feature_df.location != 'surface']\n",
        "feature_reduced_drop = feature_reduced.drop(['class', 'file_id', 'location'], \n",
        "                                            axis='columns')\n",
        "data_x = feature_reduced_drop.values\n",
        "\n",
        "# make a label encoder\n",
        "le = LabelEncoder()\n",
        "# change the string labels to ints\n",
        "data_y = le.fit_transform(feature_reduced['class'])\n",
        "    \n",
        "X_train, X_test, y_train, y_test = train_test_split(data_x, data_y, \n",
        "                                                    test_size=TEST_SIZE, \n",
        "                                                    random_state=RANDOM_STATE)\n",
        "\n",
        "X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, \n",
        "                                                  test_size=TEST_SIZE, \n",
        "                                                  random_state=RANDOM_STATE)\n",
        "\n",
        "print(X_train.shape, X_val.shape, X_test.shape)\n",
        "print(y_train.shape, y_val.shape, y_test.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(192, 36) (48, 36) (60, 36)\n",
            "(192,) (48,) (60,)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MPCkTAxbS01y",
        "colab_type": "text"
      },
      "source": [
        "We came across a number of classifiers last time. Lets quickly make a few so we can compare and change them later."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "QCox83srSxF7",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from sklearn.pipeline import Pipeline\n",
        "from sklearn.preprocessing import StandardScaler\n",
        "from sklearn.linear_model import LogisticRegression\n",
        "from sklearn.svm import SVC\n",
        "from sklearn.tree import DecisionTreeClassifier\n",
        "from sklearn.neighbors import KNeighborsClassifier\n",
        "\n",
        "# Logistic Regression\n",
        "pipe_reg = Pipeline([('scl', StandardScaler()),\n",
        "                     ('clf', LogisticRegression(class_weight='balanced',\n",
        "                                                solver = 'liblinear',\n",
        "                                                random_state=RANDOM_STATE))])\n",
        "\n",
        "# Support Vector Machine\n",
        "pipe_svc = Pipeline([('scl', StandardScaler()),\n",
        "                    ('clf', SVC(kernel='rbf', \n",
        "                                class_weight = 'balanced',\n",
        "                                probability=True,\n",
        "                                random_state=RANDOM_STATE))])\n",
        "\n",
        "# Decision Tree\n",
        "DT = DecisionTreeClassifier(random_state=RANDOM_STATE)\n",
        "\n",
        "# K-Nearest Neighbours\n",
        "pipe_kkn = Pipeline([('scl', StandardScaler()),\n",
        "                    ('clf', KNeighborsClassifier())])\n",
        "\n",
        "# list of classifier names\n",
        "classifier_names = ['Logistic Regression', 'Support Vector Machine', \n",
        "                    'Decision Tree', 'K-Nearest Neighbors']\n",
        "\n",
        "# list of classifiers\n",
        "classifiers = [pipe_reg, pipe_svc, DT, pipe_kkn]\n",
        "\n",
        "# fit all the classifiers to the training data\n",
        "for classifier in classifiers:\n",
        "  classifier.fit(X_train, y_train)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cOpBtNuUS56M",
        "colab_type": "text"
      },
      "source": [
        "# Performance Evaluation\n",
        "\n",
        "We have been focusing on accuracy to evaluate a models performance, but we can get much more information about our models performance. "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Na9tYSbzTM1_",
        "colab_type": "text"
      },
      "source": [
        "## Metrics\n",
        "\n",
        "Lets first have a look at a 'confusion matrix' when the support vector machine model is fit to the validation data. A confusion matrix shows what the models predicted label was and what the actual label is."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iValpVSuTKMv",
        "colab_type": "code",
        "outputId": "fffbe7c7-1b3e-4c09-f768-8ce59d5eb7a9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 269
        }
      },
      "source": [
        "from sklearn.metrics import confusion_matrix\n",
        "\n",
        "def pretty_confusion_matrix(confmat):\n",
        "\n",
        "    # this creates the matplotlib graph to make the confmat look nicer\n",
        "    fig, ax = plt.subplots(figsize=(4, 4))\n",
        "    ax.matshow(confmat, cmap=plt.cm.Blues, alpha=0.3)\n",
        "    for i in range(confmat.shape[0]):\n",
        "        for j in range(confmat.shape[1]):\n",
        "            ax.text(x=j, y=i, s=confmat[i, j], va='center', ha='center')\n",
        "       \n",
        "    # change the labels\n",
        "    ax.set_xticklabels(['']+['Baseline', 'Seizure'])\n",
        "    ax.set_yticklabels(['']+['Baseline', 'Seizure'])\n",
        "\n",
        "    plt.xlabel('Predicted Label')\n",
        "    plt.ylabel('True Label')\n",
        "    ax.xaxis.set_label_position('top')\n",
        "\n",
        "    plt.tight_layout()\n",
        "    \n",
        "    plt.show()\n",
        "    \n",
        "    \n",
        "# use the first classifier to predict the validation set    \n",
        "predictions = classifiers[1].predict(X_val)\n",
        "\n",
        "# get the confusion matrix as a numpy array\n",
        "confmat = confusion_matrix(y_true=y_val, y_pred=predictions)\n",
        "\n",
        "# use the pretty function to make it nicer\n",
        "pretty_confusion_matrix(confmat)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "h2Pk2BRATw7y",
        "colab_type": "text"
      },
      "source": [
        "Using this confusion matrix we can manually work out a number of different performance metrics.\n",
        "\n",
        "> **Error and Accuracy** \n",
        ">\n",
        "> Give general performance information regarding the number of all correct or false predictions comparative to the total number of predictions for both the positive and negative labels.\n",
        ">\n",
        "> **Recall (or True Positive Rate)** \n",
        ">\n",
        "> Calculates how many of the actual positives our model correctly or incorrectly labelled. This is useful when the fraction of correctly or misclassified samples in the positive class are of interest.\n",
        ">\n",
        "> **Precision (PRE)** \n",
        ">\n",
        "> Precision gives information on how precise your model is by looking at how many positive predicted labels are actually positive. To calculate it you just take the true  positives and divide it by the total true and false positives. Precision is a good measure to determine, when the costs of a False Positive is high.\n",
        ">\n",
        "> **F1-score**\n",
        ">\n",
        "> F1-score is a combination of Recall and Precision used when there is an uneven class distribution due to a large number of Actual Negatives that you are not as focused on. \n",
        "\n",
        "Different metrics maybe more appropriate depending on the application. For example, the priority may be to identify seizures and not as much on correctly identifying inter-ictal periods, therefore recall would be a better metic to look at. If we are looking at patients at risk for Sudden Unexpected Death in Epilepsy (SUDEP), then the costs of having a miss-classified actual positive (or false negative) is very high.\n",
        "\n",
        "**Note**\n",
        "- In the descriptions ictal activity would be the positive prediction and interical activity the negative.\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017.\n",
        "2. https://towardsdatascience.com/accuracy-precision-recall-or-f1-331fb37c5cb9"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yABCyA5ET0Ca",
        "colab_type": "code",
        "outputId": "9fe79a77-59f7-46cb-a925-739696979a37",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 169
        }
      },
      "source": [
        "FP = confmat[0,1]\n",
        "TN = confmat[0,0]\n",
        "TP = confmat[1,1]\n",
        "FN = confmat[1,0]\n",
        "\n",
        "ERR = (FP+FN)/(FP+FN+TP+TN)\n",
        "ACC = 1-ERR\n",
        "TPR = TP/(FN+TP)\n",
        "FPR = FP/(FP+TN)\n",
        "PRE = TP/(TP+FP)\n",
        "REC = TP/(FN+TP)\n",
        "F1 = 2*((PRE*REC)/(PRE+REC))\n",
        "\n",
        "print('True positive rate (TPR): %.3f' % TPR)\n",
        "print('False positive rate (FPR): %.3f' % FPR)\n",
        "print('Error (ERR): %.3f' % ERR)\n",
        "print()\n",
        "print('Accuracy (ACC): %.3f' % ACC)\n",
        "print('Precision (PRE): %.3f' % PRE)\n",
        "print('Recall (REC): %.3f' % REC)\n",
        "print('F1-score (F1): %.3f' % F1)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "True positive rate (TPR): 1.000\n",
            "False positive rate (FPR): 0.057\n",
            "Error (ERR): 0.042\n",
            "\n",
            "Accuracy (ACC): 0.958\n",
            "Precision (PRE): 0.867\n",
            "Recall (REC): 1.000\n",
            "F1-score (F1): 0.929\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1eAWNhz_UArW",
        "colab_type": "text"
      },
      "source": [
        "Rather than manually calculating the metrics, we can use the inbuilt sklearn method to calculate them."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JxMVtOyiUB3A",
        "colab_type": "code",
        "outputId": "953039d0-1686-46a6-cffe-d67e2373529b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 93
        }
      },
      "source": [
        "from sklearn.metrics import precision_score, recall_score, f1_score\n",
        "from sklearn.metrics import accuracy_score\n",
        "\n",
        "print('Accuracy (ACC): %.3f' % accuracy_score(y_true=y_val, y_pred=predictions))\n",
        "print('Precision (PRE): %.3f' % precision_score(y_true=y_val, y_pred=predictions))\n",
        "print('Recall (REC): %.3f' % recall_score(y_true=y_val, y_pred=predictions))\n",
        "print('F1-score (F1): %.3f' % f1_score(y_true=y_val, y_pred=predictions))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Accuracy (ACC): 0.958\n",
            "Precision (PRE): 0.867\n",
            "Recall (REC): 1.000\n",
            "F1-score (F1): 0.929\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0UZohdDdVeA8",
        "colab_type": "text"
      },
      "source": [
        "Furthermore we can use a classification report, which gives more information such as the micro avg, macro avg, and weighted avg; although we can still specify this in the previous method using the average parameter.\n",
        "\n",
        "\n",
        "> **Macro Average**\n",
        "- Treats all classes equally as each metric is calculated independently and the average is taken.\n",
        ">\n",
        "> **Micro Average**\n",
        "- Aggregates the contributions of all classes and computes an average metric. \n",
        "- This is preferable to macro avg  in cases with class imbalances.\n",
        ">\n",
        "> **Weighted Average** \n",
        "- Each contribution to the average is weighted by the relative number of examples in a class available.\n",
        "\n",
        "**NOTES**\n",
        "- The support is the number of occurrences of each class in y_true.\n",
        "- Notice how the previous metrics were based on the seizure scores. This is because in binary classification problems, the default positive label is the target (class 1). You can change this if you are more interested in the other classes performance or the average metrics.\n",
        "\n",
        "---\n",
        "https://datascience.stackexchange.com/questions/15989/micro-average-vs-macro-average-performance-in-a-multiclass-classification-settin"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e3KtRatTVew1",
        "colab_type": "code",
        "outputId": "f3ed74ab-f559-4a95-9e94-5816e7742892",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 175
        }
      },
      "source": [
        "from sklearn.metrics import classification_report\n",
        "\n",
        "pd.DataFrame(classification_report(y_val, \n",
        "                                   predictions, \n",
        "                                   labels=None, \n",
        "                                   target_names=['Baseline', 'Seizure'], \n",
        "                                   sample_weight=None, \n",
        "                                   digits=2, \n",
        "                                   output_dict=True))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Baseline</th>\n",
              "      <th>Seizure</th>\n",
              "      <th>accuracy</th>\n",
              "      <th>macro avg</th>\n",
              "      <th>weighted avg</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>precision</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.866667</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>0.933333</td>\n",
              "      <td>0.963889</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>recall</th>\n",
              "      <td>0.942857</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>0.971429</td>\n",
              "      <td>0.958333</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>f1-score</th>\n",
              "      <td>0.970588</td>\n",
              "      <td>0.928571</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>0.949580</td>\n",
              "      <td>0.959209</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>support</th>\n",
              "      <td>35.000000</td>\n",
              "      <td>13.000000</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>48.000000</td>\n",
              "      <td>48.000000</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "            Baseline    Seizure  accuracy  macro avg  weighted avg\n",
              "precision   1.000000   0.866667  0.958333   0.933333      0.963889\n",
              "recall      0.942857   1.000000  0.958333   0.971429      0.958333\n",
              "f1-score    0.970588   0.928571  0.958333   0.949580      0.959209\n",
              "support    35.000000  13.000000  0.958333  48.000000     48.000000"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 18
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "F4_h2K6OV4Tt",
        "colab_type": "text"
      },
      "source": [
        "If we have a look at the confusion matrix for all the methods we can see different methods are either producing similar or different errors"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "rjwaxvRFWCTE",
        "colab_type": "code",
        "outputId": "4a9445bb-306c-4c50-bf5a-ff0979deba49",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "source": [
        "for i, classifier in enumerate(classifiers):\n",
        "  print(color.BOLD+color.UNDERLINE+classifier_names[i]+color.END)\n",
        "\n",
        "  predictions = classifier.predict(X_val)\n",
        "\n",
        "  confmat = confusion_matrix(y_true=y_val, y_pred=predictions)\n",
        "\n",
        "  pretty_confusion_matrix(confmat)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\u001b[1m\u001b[4mLogistic Regression\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nQE8AAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "\u001b[1m\u001b[4mSupport Vector Machine\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "\u001b[1m\u001b[4mDecision Tree\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nf3tlC1CmGBt1AAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "\u001b[1m\u001b[4mK-Nearest Neighbors\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nWfw/5c5rbhdZoPcAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hh4FvdnMWOra",
        "colab_type": "text"
      },
      "source": [
        "Lets confirm this by combining all the metrics into one dataframe to compare"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eFwwMFM9WRuz",
        "colab_type": "code",
        "outputId": "c048db2e-6cac-48bb-895c-a9679a90af81",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 583
        }
      },
      "source": [
        "for i, classifier in enumerate(classifiers):\n",
        "  predictions = classifier.predict(X_val)\n",
        "\n",
        "  classifier_score_df = pd.DataFrame(\n",
        "      classification_report(y_val, \n",
        "                            predictions,\n",
        "                            target_names=['Baseline', 'Seizure'],\n",
        "                            digits=2, \n",
        "                            output_dict=True))\n",
        "  \n",
        "  classifier_score_df.index.name = 'Metric'\n",
        "  classifier_score_df['Classifier'] = classifier_names[i]\n",
        "  classifier_score_df = classifier_score_df.set_index('Classifier', append=True)\n",
        "  \n",
        "  if i == 0:\n",
        "    all_scores = classifier_score_df\n",
        "\n",
        "  else:\n",
        "    all_scores = pd.concat([all_scores, classifier_score_df])\n",
        "        \n",
        "all_scores.sort_index()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th>Baseline</th>\n",
              "      <th>Seizure</th>\n",
              "      <th>accuracy</th>\n",
              "      <th>macro avg</th>\n",
              "      <th>weighted avg</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Metric</th>\n",
              "      <th>Classifier</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">f1-score</th>\n",
              "      <th>Decision Tree</th>\n",
              "      <td>0.985507</td>\n",
              "      <td>0.962963</td>\n",
              "      <td>0.979167</td>\n",
              "      <td>0.974235</td>\n",
              "      <td>0.979402</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>K-Nearest Neighbors</th>\n",
              "      <td>0.958904</td>\n",
              "      <td>0.869565</td>\n",
              "      <td>0.937500</td>\n",
              "      <td>0.914235</td>\n",
              "      <td>0.934708</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Logistic Regression</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Support Vector Machine</th>\n",
              "      <td>0.970588</td>\n",
              "      <td>0.928571</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>0.949580</td>\n",
              "      <td>0.959209</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">precision</th>\n",
              "      <th>Decision Tree</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.928571</td>\n",
              "      <td>0.979167</td>\n",
              "      <td>0.964286</td>\n",
              "      <td>0.980655</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>K-Nearest Neighbors</th>\n",
              "      <td>0.921053</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.937500</td>\n",
              "      <td>0.960526</td>\n",
              "      <td>0.942434</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Logistic Regression</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Support Vector Machine</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.866667</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>0.933333</td>\n",
              "      <td>0.963889</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">recall</th>\n",
              "      <th>Decision Tree</th>\n",
              "      <td>0.971429</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.979167</td>\n",
              "      <td>0.985714</td>\n",
              "      <td>0.979167</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>K-Nearest Neighbors</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.769231</td>\n",
              "      <td>0.937500</td>\n",
              "      <td>0.884615</td>\n",
              "      <td>0.937500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Logistic Regression</th>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>1.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Support Vector Machine</th>\n",
              "      <td>0.942857</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>0.971429</td>\n",
              "      <td>0.958333</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">support</th>\n",
              "      <th>Decision Tree</th>\n",
              "      <td>35.000000</td>\n",
              "      <td>13.000000</td>\n",
              "      <td>0.979167</td>\n",
              "      <td>48.000000</td>\n",
              "      <td>48.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>K-Nearest Neighbors</th>\n",
              "      <td>35.000000</td>\n",
              "      <td>13.000000</td>\n",
              "      <td>0.937500</td>\n",
              "      <td>48.000000</td>\n",
              "      <td>48.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Logistic Regression</th>\n",
              "      <td>35.000000</td>\n",
              "      <td>13.000000</td>\n",
              "      <td>1.000000</td>\n",
              "      <td>48.000000</td>\n",
              "      <td>48.000000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Support Vector Machine</th>\n",
              "      <td>35.000000</td>\n",
              "      <td>13.000000</td>\n",
              "      <td>0.958333</td>\n",
              "      <td>48.000000</td>\n",
              "      <td>48.000000</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                   Baseline    Seizure  ...  macro avg  weighted avg\n",
              "Metric    Classifier                                    ...                         \n",
              "f1-score  Decision Tree            0.985507   0.962963  ...   0.974235      0.979402\n",
              "          K-Nearest Neighbors      0.958904   0.869565  ...   0.914235      0.934708\n",
              "          Logistic Regression      1.000000   1.000000  ...   1.000000      1.000000\n",
              "          Support Vector Machine   0.970588   0.928571  ...   0.949580      0.959209\n",
              "precision Decision Tree            1.000000   0.928571  ...   0.964286      0.980655\n",
              "          K-Nearest Neighbors      0.921053   1.000000  ...   0.960526      0.942434\n",
              "          Logistic Regression      1.000000   1.000000  ...   1.000000      1.000000\n",
              "          Support Vector Machine   1.000000   0.866667  ...   0.933333      0.963889\n",
              "recall    Decision Tree            0.971429   1.000000  ...   0.985714      0.979167\n",
              "          K-Nearest Neighbors      1.000000   0.769231  ...   0.884615      0.937500\n",
              "          Logistic Regression      1.000000   1.000000  ...   1.000000      1.000000\n",
              "          Support Vector Machine   0.942857   1.000000  ...   0.971429      0.958333\n",
              "support   Decision Tree           35.000000  13.000000  ...  48.000000     48.000000\n",
              "          K-Nearest Neighbors     35.000000  13.000000  ...  48.000000     48.000000\n",
              "          Logistic Regression     35.000000  13.000000  ...  48.000000     48.000000\n",
              "          Support Vector Machine  35.000000  13.000000  ...  48.000000     48.000000\n",
              "\n",
              "[16 rows x 5 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ijOdUcuSXHY7",
        "colab_type": "text"
      },
      "source": [
        "## Receiver Operating Characteristic (ROC) Curve\n",
        "\n",
        "We can also use plots to visualise each models performance. \n",
        "\n",
        "ROC curves are useful for comparing classification models based on their false positive and true positive rate performance. A ROC curve is computed by shifting the decision threshold of the classifier<sup>1</sup>.\n",
        "\n",
        "**NOTES**\n",
        "- For the SVM, probability needs to be true\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "N8vs4FmmXNtQ",
        "colab_type": "code",
        "outputId": "f73ff1fc-98dc-4357-fab5-0a8bdbeb36a9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 585
        }
      },
      "source": [
        "from sklearn.metrics import roc_curve, roc_auc_score, auc\n",
        "from sklearn.externals import joblib\n",
        "import re\n",
        "\n",
        "def ROC(classifiers, classifier_names, X_train, \n",
        "        X_val, y_train, y_val, image_file_path):\n",
        "  \n",
        "  # this creates the matplotlib graph to make the confmat look nicer\n",
        "  fig, ax = plt.subplots(figsize=(8, 8))\n",
        "  # for each classifier...\n",
        "  for i, classifer in enumerate(classifiers):\n",
        "    # fit the pipeline\n",
        "    probas = classifer.fit(X_train,\n",
        "                                y_train).predict_proba(X_val)\n",
        "\n",
        "    # get the roc curve info\n",
        "    fpr, tpr, thresholds = roc_curve(y_val, \n",
        "                                     probas[:, 1], \n",
        "                                     pos_label=1)\n",
        "\n",
        "    roc_auc = auc(fpr, tpr)\n",
        "\n",
        "    plt.plot(fpr, \n",
        "             tpr, \n",
        "             lw=1, \n",
        "             label='{} (area = %0.2f)'.format(classifier_names[i]) %roc_auc)\n",
        "\n",
        "  plt.plot([0, 1], \n",
        "           [0, 1], \n",
        "           linestyle='--', \n",
        "           color=(0.6, 0.6, 0.6), \n",
        "           label='random guessing')\n",
        "\n",
        "  plt.plot([0, 0, 1], \n",
        "           [0, 1, 1], \n",
        "           lw=2, \n",
        "           linestyle=':', \n",
        "           color='black', \n",
        "           label='perfect performance')\n",
        "\n",
        "  plt.xlim([-0.05, 1.05])\n",
        "  plt.ylim([-0.05, 1.05])\n",
        "  plt.xlabel('false positive rate')\n",
        "  plt.ylabel('true positive rate')\n",
        "  plt.title('Receiver Operator Characteristic on Validation Set')\n",
        "  plt.legend(loc=\"lower right\", fontsize ='medium')\n",
        "\n",
        "  plt.tight_layout()\n",
        "  plt.savefig(image_file_path, dpi=300)\n",
        "  plt.show()    \n",
        "    \n",
        "\n",
        "ROC(classifiers, classifier_names, X_train, X_val, y_train, \n",
        "    y_val, 'Classifiers_ROC.png')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 576x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "IjuwnvLqXp6Q",
        "colab_type": "text"
      },
      "source": [
        "## Precision-recall Curve\n",
        "\n",
        "To explain precision-recall curves the Scikit-learn documentation is pretty useful (as seen below):\n",
        "\n",
        "> \"*The precision-recall curve shows the tradeoff between precision and recall for different threshold. A high area under the curve represents both high recall and high precision, where high precision relates to a low false positive rate, and high recall relates to a low false negative rate. High scores for both show that the classifier is returning accurate results (high precision), as well as returning a majority of all positive results (high recall).*\n",
        ">\n",
        "> *A system with high recall but low precision returns many results, but most of its predicted labels are incorrect when compared to the training labels. A system with high precision but low recall is just the opposite, returning very few results, but most of its predicted labels are correct when compared to the training labels. An ideal system with high precision and high recall will return many results, with all results labeled correctly.*\"<sup>1</sup>\n",
        "\n",
        "PR curves are useful in unballanced datasets, such as when the positive class is rare, or when false positives are more important than false negatives; otherwise a ROC curve is generally more useful<sup>2<sup>.\n",
        "\n",
        "**Note**\n",
        "- Precision Curves only work with classifiers that have a decision_function such as SVM\n",
        "  \n",
        "---\n",
        "1. https://scikit-learn.org/stable/auto_examples/model_selection/plot_precision_recall.html\n",
        "2. Géron, A. (2017). Hands-on machine learning with Scikit-Learn and TensorFlow: concepts, tools, and techniques to build intelligent systems. \" O'Reilly Media, Inc.\"."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ONo-uFJQXqgQ",
        "colab_type": "code",
        "outputId": "8cc083ec-58ab-4150-f24a-eee422b77c97",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 297
        }
      },
      "source": [
        "from sklearn.metrics import precision_recall_curve\n",
        "#from sklearn.utils.fixes import signature\n",
        "from sklearn.externals import joblib\n",
        "from sklearn.metrics import average_precision_score\n",
        "\n",
        "def Precision_Curve(classifier_list, classifier_names, X_train, \n",
        "                    X_val, y_train, y_val, image_file_path):\n",
        "\n",
        "  # for each classifier...\n",
        "  for i, classifer_ in enumerate(classifier_list):\n",
        "\n",
        "      y_score = classifer_.decision_function(X_val)\n",
        "\n",
        "      precision, recall, _ = precision_recall_curve(y_val, y_score)\n",
        "\n",
        "      average_precision = average_precision_score(y_val, y_score)\n",
        "\n",
        "      plt.step(recall, precision, alpha=0.2, where='post', \n",
        "               label=classifier_names[i]+' PREC = %0.2f'% average_precision)\n",
        "\n",
        "  plt.xlabel('Recall')\n",
        "  plt.ylabel('Precision')\n",
        "  plt.ylim([0.0, 1.05])\n",
        "  plt.xlim([0.0, 1.0])\n",
        "  plt.title('Precision-Recall curve on Validation Set')\n",
        "  plt.legend(loc=\"lower right\")\n",
        "\n",
        "  plt.tight_layout()\n",
        "  plt.savefig(image_file_path, dpi=300)\n",
        "  plt.show()\n",
        "\n",
        "Precision_Curve(classifiers[:2], classifier_names[:2], X_train, X_val, \n",
        "                y_train, y_val, 'Classifiers_PREC.png')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nJEGy56DOAK4ys5XANoJuPnf3WKoCExGRii3ZBHVhSqMQEREpoKQZdasBNwPNgc+AF9x996EITERE\nKraSzkG9BHQgSE4XAY+mPCIRERFK7uJrFV69h5m9AMxJfUgiIiIlt6DiI5ara09ERA6lkhJUmpl9\nG962ALG8+2b2bUmFm1kPM1tsZkvNbHgx+/3YzNzMOuzvExARkcNTsV187l7pQAs2s0rAk0B3IBeY\na2aT3D2nwH41gSHAxwd6LBEROfwk+0PdA9ERWOruy919JzAe6FPIfr8EHgR2pDAWEREpZ1KZoBoA\nqxKWc8N1cWbWDmjk7sUOoWRmN5rZPDObt27dutKPVEREIieVCapYZnYE8Bhwe0n7uvtz7t7B3TvU\nrVs39cGJiEiZS2WCWg00SlhuGK7LUxNoA0wPh1DKACbpQgkREYHUJqi5QAsza2pmVYF+wKS8je6+\n2d3ruHsTd28CzAZ6u/u8FMYkIiLlRMoSVPi7qcHAu8C/gNfcfZGZ3WdmvVN1XBEROTwkO1jsAXH3\nycDkAuvuKWLfrqmMRUREypcyu0hCRESkOEpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQ\nIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiIS\nSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQ\nIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSUpQIiISSSlNUGbWw8wWm9lS\nMxteyPbbzCzHzLLNbKqZNU5lPCIiUn6kLEGZWSXgSeAioBXQ38xaFdjtU6CDu8eAicBDqYpHRETK\nl1S2oDoCS919ubvvBMYDfRJ3cPdp7r49XJwNNExhPCIiUo6kMkE1AFYlLOeG64pyHfC3wjaY2Y1m\nNs/M5q1bt64UQxQRkaiKxEUSZnYV0AF4uLDt7v6cu3dw9w5169Y9tMGJiEiZqJzCslcDjRKWG4br\n8jGz84G7gHPc/fsUxiMiIuVIKltQc4EWZtbUzKoC/YBJiTuY2WnAs0Bvd/86hbGIiEg5k7IWlLvv\nNrPBwLtAJeBFd19kZvcB89x9EkGXXg3gdTMD+NLde6cqJqlYdu3aRW5uLjt27CjrUEQqhGrVqtGw\nYUOqVKlSKuWlsosPd58MTC6w7p6E++en8vhSseXm5lKzZk2aNGlC+AVIRFLE3dmwYQO5ubk0bdq0\nVMqMxEUSIqmwY8cOjj/+eCUnkUPAzDj++ONLtcdCCUoOa0pOIodOaf+/KUGJiEgkKUGJpFCNGjUO\nuow1a9Zw+eWXF7l906ZNPPXUU0nvX9CgQYNo2rQp6enppKWlMXXq1IOKt7Q988wzvPzyywddzsqV\nK6levTrp6em0atWKm2++mb179+6zfsCAAezatQuA6dOnU6tWLdLT0+O3KVOmAPCf//yHfv360axZ\nM9q3b0/Pnj35/PPPDyrGGTNm0K5dOypXrszEiROL3G/+/Pm0bduW5s2bc+utt+LuAHzzzTd0796d\nFi1a0L17dzZu3HhQ8ZQ5dy9Xt/bt27tIMnJycso6BD/66KNTfowVK1Z469atD/jxAwcO9Ndff93d\n3T/44ANv3rx5qcS1a9euUimntCTW065du7xLly7+xhtv5Fu/e/du79atm//xj390d/dp06Z5r169\n9ilr7969npGR4U8//XR8XVZWls+YMeOgY1ywYIFfffXV8dekMKeffrrPmjXL9+7d6z169PDJkye7\nu/vQoUN99OjR7u4+evRov+OOOw4qngNR2P8dwZXb+/15rxaUVAhrNn3H8nVbS/W2ZtN3BxTLypUr\nOffcc4nFYpx33nl8+eWXACxbtoyMjAzatm3LiBEj4q2vlStX0qZNGwAWLVpEx44dSU9PJxaLsWTJ\nEoYPH86yZctIT09n6NCh+fbfs2cPv/jFL2jTpg2xWIwnnnii2Ng6derE6tX//T39/PnzOeecc2jf\nvj0XXngha9euBWDu3LnEYrH4MfOON3bsWHr37s25557LeeedB8DDDz/M6aefTiwWY+TIkQBs27aN\nXr16kZaWRps2bZgwYQIAw4cPp1WrVsRiMX7xi18AMGrUKB555BEAsrKyyMjIIBaL8aMf/SjeQuja\ntSvDhg2jY8eOtGzZkpkzZxb7PCtXrsyZZ57J0qVL862vVKkSHTt2zFcHhZk2bRpVqlTh5ptvjq9L\nS0ujS5cuxT6uJE2aNCEWi3HEEUV/NK9du5Zvv/2WjIwMzIwBAwbw1ltvAfD2228zcOBAAAYOHBhf\nX14pQYkcYrfccgsDBw4kOzubK6+8kltvvRWAIUOGMGTIED777DMaNix83ORnnnmGIUOGkJWVxbx5\n82jYsCFjxoyhWbNmZGVl8fDD+UcLe+6551i5ciVZWVnx4xXn73//O5deeikQ/I7slltuYeLEicyf\nP59rr72Wu+66C4BrrrmGZ599lqysLCpVqpSvjE8++YSJEyfy4Ycf8t5777FkyRLmzJlDVlYW8+fP\nZ8aMGfz973+nfv36LFiwgIULF9KjRw82bNjAm2++yaJFi8jOzmbEiBH7xDdgwAAefPBBsrOzadu2\nLffee2982+7du5kzZw6PP/54vvWF2b59O1OnTqVt27b51u/YsYOPP/6YHj16xNfNnDkzXxffsmXL\nWLhwIe3bty/2GHm6dOmS7/EFuwr31+rVq/O9Pxo2bBhPqF999RX16tUD4Ac/+AFfffXVAR0jKlL6\nOyiRqKhfu3pZhxA3a9Ys/vznPwNw9dVXc8cdd8TX533jveKKK+ItiESdOnXigQceIDc3l8suu4wW\nLVoUe6wpU6Zw8803U7ly8K9+3HHHFbrf0KFD+b//+z9yc3OZNWsWAIsXL2bhwoV0794dCFpj9erV\nY9OmTWzZsoVOnTrFY/3rX/8aL6t79+7x47z33nu89957nHbaaQBs3bqVJUuW0KVLF26//XaGDRvG\nxRdfTJcuXdi9ezfVqlXjuuuu4+KLL+biiy/OF+PmzZvZtGkT55xzDhC0EPr27RvfftlllwHQvn17\nVq5cWejzzGtpmhl9+vThoosuYuXKlfH1K1asoFevXsRisfhjunTpku/57a+SWnOpYmbl/ipWJSiR\ncuSKK67gjDPO4J133qFnz548++yznHzyyQdd7sMPP8zll1/OE088wbXXXsv8+fNxd1q3bh1PWHk2\nbdpUbFlHH310/L67c+edd3LTTTfts98nn3zC5MmTGTFiBOeddx733HMPc+bMYerUqUycOJHf/e53\nfPDBB0k/hyOPPBIIuul2795d6D55Lc2i1q9fv57OnTszadIkevcuelCb1q1bF3sRQ6IuXbqwZcuW\nfdY/8sgjnH/+/o9V0KBBA3Jzc+PLubm5NGgQTBRx4oknsnbtWurVq8fatWs54YQT9rv8KFEXn8gh\nduaZZzJ+/HgAXn311fh5i4yMDN544w2A+PaCli9fzsknn8ytt95Knz59yM7OpmbNmoV+AELQmnn2\n2WfjH9jffPNNsbENHjyYvXv38u6773LKKaewbt26eILatWsXixYtonbt2tSsWZOPP/642FgBLrzw\nQl588UW2bt0KBN1TX3/9NWvWrOGoo47iqquuYujQoXzyySds3bqVzZs307NnT37961+zYMGCfGXV\nqlWLY489Nt4ieeWVV+KtqdJSp04dxowZw+jRo4vd79xzz+X777/nueeei6/Lzs4utLU0c+ZMsrKy\n9rkdSHICqFevHscccwyzZ8/G3Xn55Zfp0yeYaq9379689NJLALz00kvx9eWVEpRICm3fvp2GDRvG\nb4899hhPPPEEf/jDH4jFYrzyyiv85je/AeDxxx/nscceIxaLsXTpUmrVqrVPea+99hpt2rQhPT2d\nhQsXMmDAAI4//ng6d+5MmzZtGDp0aL79r7/+ek466SRisRhpaWn86U9/KjZeM2PEiBE89NBDVK1a\nlYkTJzJs2DDS0tJIT0/nn//8JwAvvPACN9xwA+np6Wzbtq3QWAEuuOACrrjiCjp16kTbtm25/PLL\n2bJlC5999ln8Yo97772XESNGsGXLFi6++GJisRhnnXUWjz322D7lvfTSSwwdOpRYLEZWVhb33HNP\nIUc9OJdeeinbt2+PJ5uC56AmTpyImfHmm28yZcoUmjVrRuvWrbnzzjv5wQ9+cFDHnjt3Lg0bNuT1\n11/npptuonXr1vFt6enp8ftPPfUU119/Pc2bN6dZs2ZcdNFFQHCRyfvvv0+LFi2YMmUKw4cPP6h4\nypp5eP18edGhQwefN29eWYch5cC//vUvTj311LIOI2nbt2+nevXqmBnjx49n3LhxvP3222UdVqG2\nbt0av8pwzJgxrF27Np5opWIr7P/OzOa7e4f9LUvnoEQiYv78+QwePBh3p3bt2rz44otlHVKR3nnn\nHUaPHs3u3btp3LgxY8eOLeuQ5DCkBCUSEV26dNnnvEtUZWZmkpmZWdZhyGFO56BERCSSlKBERCSS\nlKBERCSSlKBERCSSlKBEUuiBBx6gdevW8YFV837cWhYef/xxtm/fvs/6e++9lzvvvDPfuqysrAO6\nRD8rK4vJkycfcIwQDI6b93usPOvXr6dKlSoMHjz4gMosatqT0prKA4IRLNLT02nTpg19+/aN13Xi\n+ksuuSQ+EkfiNB95t7xYtm7dyk033RSfyqNr164H/d5xd2699VaaN29OLBbjk08+KXS/CRMmEIvF\naN26NcOGDYuv/+KLLzjvvPOIxWJ07do132gWKXMgQ6CX5U3TbUiyynq6jX/+85+ekZHhO3bscHf3\n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\nEhGRSPp/wp6O5GCLqrQAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KqHBqHdmZYOH",
        "colab_type": "text"
      },
      "source": [
        "## Learning Curve\n",
        "\n",
        "Learning curves can be used to see if an algorithm has a problem with overfitting (high variance) or underfitting (high bias) to the training data. It could be that the model is too complex for the training dataset leading it to not generalize well to unseen data. We can plot the degree to which a model is over/under-fitting to the training data as we add in more training data. What we are looking for is that as the number of training samples increases the chosen scoring metrics for the training and test sets get closer together.\n",
        "\n",
        "What these curves are telling us about our model is that are likely overfitting to the training data. To address this we could<sup>1</sup>:\n",
        "- collect more training data\n",
        "- reduce the complexity of the model\n",
        "- increase the regularization parameter\n",
        "- decrease the number of features via feature selection or feature extraction (Classification 05 Tutorial)\n",
        "\n",
        "**NOTES**\n",
        "- for the plotting I'm using a package called mlxtend<sup>2</sup>\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017.\n",
        "\n",
        "2. Raschka, Sebastian. Mlxtend(Version 0.13.0). doi = 10.5281/zenodo.594432, url = http://dx.doi.org/10.5281/zenodo.594432"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vHoZ512XZbXW",
        "colab_type": "code",
        "outputId": "cad26798-7436-4c63-d1f2-c6c90ffac9c7",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 610
        }
      },
      "source": [
        "from mlxtend.plotting import plot_learning_curves\n",
        "\n",
        "learning_curve_scoring = ['accuracy', 'precision']\n",
        "\n",
        "\n",
        "print(color.BOLD+color.UNDERLINE+classifier_names[1]+color.END)\n",
        "for scoring_method in learning_curve_scoring:\n",
        "  plot_learning_curves(X_train, y_train, X_val, y_val, classifiers[1], \n",
        "                       train_marker='o', test_marker='^', \n",
        "                       scoring=scoring_method, print_model =False)\n",
        "  if scoring_method in ['accuracy', 'precision']:\n",
        "      plt.ylim(top=1.01)\n",
        "  plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\u001b[1m\u001b[4mSupport Vector Machine\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\ncQNvb29iY2Px8/OTriiMjY0bvSd579XMw9bdkIMHDxIZGcmoUaN4//3368y3tbUlJycHLy+vv9Rv\nI8+cOUN1dbVanGquvGxsbIC7bc/Pz2801vdja2uLUqkkNze3wVHVa46rubl5nS8OTdWU4y80Ttzj\nE5pVzRVX7S7Oa9eusX79em01qQ5vb28OHjzIb7/9JpVdu3aNTZs2NbpuZWUlJSUlamXt2rXDysqK\n4uJiANzd3bGysuLvf/87ZWVldbZRu+utpntMk+4vTequz+XLl6WnHZOSkupdxt/fn8rKSuLj4+vM\nq6qq0lr33MWLF9m2bZs0XVZWxtq1a7G1tcXe3h642/aLFy+yZs2aOuvfvn1bo7fi+Pr6IpPJiI2N\nrdMrUXOFNnToUNq0acPixYupqqqqs42mdAc/yPEXNCeu+IRmNWzYMFJSUvD392fUqFHcuHGDVatW\n0bFjR65fv67t5gEwffp0Nm3axIgRIwgPD8fQ0JBVq1bRuXNnTpw4cd9v4Tdu3EChUODr64ujoyNt\n27blwIED7N+/X7qS0tfXZ+nSpQQGBuLl5UVQUBAdOnTg8uXLZGVl8cwzz5CRkQFA7969AZg7dy4j\nR47EwMCAAQMG1Nu1qEndDe1vYWEh48ePZ+vWrWrzunXrhkKhwNvbm+DgYOLi4jh+/Dj9+vXDwMCA\n//73v2zZsoWoqKgmv1f1Ydjb2zNp0iSOHDmChYUF69at49y5c3z99dfScQoODmbLli1MnjyZvXv3\n4u7ujlKpJC8vj02bNpGent7ou0u7d+/O1KlT+eyzz/Dx8eGVV16hVatW/Prrr5iamvLJJ59gampK\nXFwckyZNom/fvgQEBGBmZsbFixf5/vvvUSgUfPbZZw+0fyYmJtja2pKeno61tTWmpqZ07dpV+lwI\nTSMSn9CsBg0aRFJSEklJSURGRmJlZcXkyZMxMDBg+vTp2m4eAF26dOG7774jMjKS+Ph4zM3NiYiI\noLq6mhMnTty3q8/Y2Ji3336b3bt3s23bNpRKJZ07dyYmJobw8HBpuf79+5OZmUl8fDxffPEFZWVl\nyOVyFAoFb7/9trRczW/GVq9ezc6dO1GpVOzcubPexKdp3fequRKJiYmpMy80NBSFQgFAUlISbm5u\npKamEhUVhb6+PtbW1rz++uvSk7XNzd7enkWLFjFv3jzy8vKwtrYmOTkZX19faRk9PT3S0tJYunQp\naWlpbN26FSMjI7p06UJERIR0ZdiYefPmYWtrS3JyMtHR0RgZGeHo6Ii/v7+0zJgxY+jYsSOJiYks\nWbKEiooKOnTogJeXF8HBwU3ax+XLl/Phhx/y0UcfcefOHUJDQ0Xie0jiXZ2CoKFp06aRkZHB+fPn\nxb2XvwAHBwfVhPkhAAAAqElEQVSef/75et/6Iwj3I+7xCUI9bt++rTZdWFjIhg0b6NOnj0h6gvCE\nE12dglCPAQMGMHDgQOzt7bly5QqrV6/m9u3bfPDBB9pumiAID0kkPkGox6BBg9i+fTt//PEHenp6\nuLq6kpycrPbWF0EQnkziHp8gCIKgU8Q9PkEQBEGniMQnCIIg6BSR+ARBEASdIhKfIAiCoFNE4hME\nQRB0ikh8giAIgk75P0qamqtLYKzFAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "jfzmppb-YAcH",
        "colab_type": "text"
      },
      "source": [
        "## Cross-Validation\n",
        "\n",
        "So far we have only assessed our models performance on splitting our data into training, validation, and test sets (the holdout method). The validation set is used during training and setting hyperparameters, and the test set can be used once a final model is selected for final performance evaluation<sup>1</sup>. This is a popular approach to generalization performance, however as we will see, we can't keep using the same validation set when trying different hyperparameters as the model will be more likely to over-fit to the current data and be less generalisable when deployed in the real world.\n",
        "\n",
        "So first lets split our data back into just training and test sets.\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PYp2Qn7AYqOf",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "X_train, X_test, y_train, y_test = train_test_split(data_x, \n",
        "                                                    data_y, \n",
        "                                                    test_size=TEST_SIZE, \n",
        "                                                    random_state=RANDOM_STATE)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LawbRSrYY3PB",
        "colab_type": "text"
      },
      "source": [
        "### K-Fold Cross-Validation\n",
        "\n",
        "There is a disadvantage to the holdout method, as where the splits of the training, validation, and test sets are will effect performance. Therefore a more robust technique is to split the training data into multipule training and validation sets (e.g. K-Fold Cross-Validation). We randomly split the training set into *k* folds without replacement so *k*-1 folds are used for model training with one fold used for performance evaluation. As this is repeated *k* times we get *k* models and performance estimates, of which the average performance is taken. As the k-fold cross-validation resamples without replacement, each sample point will have been used in both the training and validation sets once<sup>1</sup>.\n",
        "\n",
        "A good default value for K is 10, however if the training sets are small it may be better to increase the number of folds, and if the data is large reduce it<sup>2</sup>.\n",
        "\n",
        "First I will show how it splits up data. This code could be used for analysis but is not as efficient as the subsequent block. As such I'll keep the number of splits and repeats low to demonstrate.\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017.\n",
        "\n",
        "2. R. Kohavi et al. A Study of Cross-validation and Bootstrap for Accuracy Estimation and Model Selection. In Ijcai, volume 14, pages 1137–1145, 1995"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "AhB8FSmjZFBw",
        "colab_type": "code",
        "outputId": "c92ff889-0b74-4d0c-a662-c38bced30490",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "source": [
        "%%time\n",
        "import numpy as np\n",
        "from sklearn.model_selection import RepeatedKFold\n",
        "from sklearn.base import clone\n",
        "\n",
        "N_SPLITS = 2\n",
        "N_REPEATS = 2\n",
        "\n",
        "RepKFold = RepeatedKFold(n_splits = N_SPLITS,\n",
        "                         n_repeats = N_REPEATS,\n",
        "                         random_state=RANDOM_STATE)\n",
        "\n",
        "scores = []\n",
        "i = 0\n",
        "for train_index, validation_index in RepKFold.split(X_train, y_train):\n",
        "  clone_clf = clone(pipe_reg)\n",
        "\n",
        "  clone_clf.fit(X_train[train_index], y_train[train_index])\n",
        "  score = clone_clf.score(X_train[validation_index], y_train[validation_index])\n",
        "  scores.append(score)\n",
        "\n",
        "  print(color.BOLD+color.UNDERLINE+'Fold '+str(i+1)+color.END)\n",
        "  print('Class dist.: %s, Acc: %.3f' % (np.bincount(y_train[train_index]), score))\n",
        "  print(\"\\nTRAIN:\", train_index)\n",
        "  print(\"\\nVALIDATION:\", validation_index)\n",
        "  print()\n",
        "  i+=1\n",
        "    \n",
        "print('\\nCV accuracy: %.3f +/- %.3f' % (np.mean(scores), np.std(scores)))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\u001b[1m\u001b[4mFold 1\u001b[0m\n",
            "Class dist.: [74 46], Acc: 0.975\n",
            "\n",
            "TRAIN: [  0   1   2   6   9  10  11  17  21  23  25  28  29  31  32  34  35  36\n",
            "  38  39  42  43  47  48  49  53  57  58  59  65  67  68  69  70  72  77\n",
            "  78  79  81  82  84  85  87  88  91  93  94  95  98  99 100 102 103 105\n",
            " 112 113 114 115 117 119 120 121 127 128 131 132 133 137 140 141 142 143\n",
            " 146 147 148 150 151 160 163 164 165 167 172 173 174 175 177 180 182 183\n",
            " 185 186 187 189 190 192 193 195 196 197 198 200 203 204 205 207 208 211\n",
            " 212 216 222 223 224 225 228 229 232 236 237 238]\n",
            "\n",
            "VALIDATION: [  3   4   5   7   8  12  13  14  15  16  18  19  20  22  24  26  27  30\n",
            "  33  37  40  41  44  45  46  50  51  52  54  55  56  60  61  62  63  64\n",
            "  66  71  73  74  75  76  80  83  86  89  90  92  96  97 101 104 106 107\n",
            " 108 109 110 111 116 118 122 123 124 125 126 129 130 134 135 136 138 139\n",
            " 144 145 149 152 153 154 155 156 157 158 159 161 162 166 168 169 170 171\n",
            " 176 178 179 181 184 188 191 194 199 201 202 206 209 210 213 214 215 217\n",
            " 218 219 220 221 226 227 230 231 233 234 235 239]\n",
            "\n",
            "\u001b[1m\u001b[4mFold 2\u001b[0m\n",
            "Class dist.: [86 34], Acc: 0.992\n",
            "\n",
            "TRAIN: [  3   4   5   7   8  12  13  14  15  16  18  19  20  22  24  26  27  30\n",
            "  33  37  40  41  44  45  46  50  51  52  54  55  56  60  61  62  63  64\n",
            "  66  71  73  74  75  76  80  83  86  89  90  92  96  97 101 104 106 107\n",
            " 108 109 110 111 116 118 122 123 124 125 126 129 130 134 135 136 138 139\n",
            " 144 145 149 152 153 154 155 156 157 158 159 161 162 166 168 169 170 171\n",
            " 176 178 179 181 184 188 191 194 199 201 202 206 209 210 213 214 215 217\n",
            " 218 219 220 221 226 227 230 231 233 234 235 239]\n",
            "\n",
            "VALIDATION: [  0   1   2   6   9  10  11  17  21  23  25  28  29  31  32  34  35  36\n",
            "  38  39  42  43  47  48  49  53  57  58  59  65  67  68  69  70  72  77\n",
            "  78  79  81  82  84  85  87  88  91  93  94  95  98  99 100 102 103 105\n",
            " 112 113 114 115 117 119 120 121 127 128 131 132 133 137 140 141 142 143\n",
            " 146 147 148 150 151 160 163 164 165 167 172 173 174 175 177 180 182 183\n",
            " 185 186 187 189 190 192 193 195 196 197 198 200 203 204 205 207 208 211\n",
            " 212 216 222 223 224 225 228 229 232 236 237 238]\n",
            "\n",
            "\u001b[1m\u001b[4mFold 3\u001b[0m\n",
            "Class dist.: [81 39], Acc: 0.967\n",
            "\n",
            "TRAIN: [  0   2   3   5   8   9  11  13  14  16  17  18  20  22  24  25  27  28\n",
            "  29  30  31  32  33  34  35  36  39  41  43  44  46  51  53  58  61  63\n",
            "  64  66  67  68  69  72  73  79  80  81  83  84  85  87  88  89  91  92\n",
            "  93  94  97 101 103 105 106 108 111 112 114 116 117 120 122 123 126 128\n",
            " 129 131 133 136 138 140 143 145 146 147 149 150 151 152 158 160 162 164\n",
            " 166 167 168 173 176 178 181 187 189 190 195 196 197 198 199 200 201 202\n",
            " 203 206 214 215 217 218 220 221 223 224 225 239]\n",
            "\n",
            "VALIDATION: [  1   4   6   7  10  12  15  19  21  23  26  37  38  40  42  45  47  48\n",
            "  49  50  52  54  55  56  57  59  60  62  65  70  71  74  75  76  77  78\n",
            "  82  86  90  95  96  98  99 100 102 104 107 109 110 113 115 118 119 121\n",
            " 124 125 127 130 132 134 135 137 139 141 142 144 148 153 154 155 156 157\n",
            " 159 161 163 165 169 170 171 172 174 175 177 179 180 182 183 184 185 186\n",
            " 188 191 192 193 194 204 205 207 208 209 210 211 212 213 216 219 222 226\n",
            " 227 228 229 230 231 232 233 234 235 236 237 238]\n",
            "\n",
            "\u001b[1m\u001b[4mFold 4\u001b[0m\n",
            "Class dist.: [79 41], Acc: 0.975\n",
            "\n",
            "TRAIN: [  1   4   6   7  10  12  15  19  21  23  26  37  38  40  42  45  47  48\n",
            "  49  50  52  54  55  56  57  59  60  62  65  70  71  74  75  76  77  78\n",
            "  82  86  90  95  96  98  99 100 102 104 107 109 110 113 115 118 119 121\n",
            " 124 125 127 130 132 134 135 137 139 141 142 144 148 153 154 155 156 157\n",
            " 159 161 163 165 169 170 171 172 174 175 177 179 180 182 183 184 185 186\n",
            " 188 191 192 193 194 204 205 207 208 209 210 211 212 213 216 219 222 226\n",
            " 227 228 229 230 231 232 233 234 235 236 237 238]\n",
            "\n",
            "VALIDATION: [  0   2   3   5   8   9  11  13  14  16  17  18  20  22  24  25  27  28\n",
            "  29  30  31  32  33  34  35  36  39  41  43  44  46  51  53  58  61  63\n",
            "  64  66  67  68  69  72  73  79  80  81  83  84  85  87  88  89  91  92\n",
            "  93  94  97 101 103 105 106 108 111 112 114 116 117 120 122 123 126 128\n",
            " 129 131 133 136 138 140 143 145 146 147 149 150 151 152 158 160 162 164\n",
            " 166 167 168 173 176 178 181 187 189 190 195 196 197 198 199 200 201 202\n",
            " 203 206 214 215 217 218 220 221 223 224 225 239]\n",
            "\n",
            "\n",
            "CV accuracy: 0.977 +/- 0.009\n",
            "CPU times: user 26.9 ms, sys: 2.92 ms, total: 29.9 ms\n",
            "Wall time: 28.4 ms\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sKe-92q7ZWj1",
        "colab_type": "text"
      },
      "source": [
        "However rather than manually doing it like above, we can instead use a function such as cross_val_score which allows for doing computation in parallel (n_jobs=-1)."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OVdhyLoWZXJn",
        "colab_type": "code",
        "outputId": "9b0dc8d5-f29e-41bd-c3b2-1f531fdfb073",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 93
        }
      },
      "source": [
        "%%time\n",
        "from sklearn.model_selection import cross_val_score\n",
        "from sklearn.metrics import make_scorer\n",
        "\n",
        "SCORER = make_scorer(score_func=accuracy_score)\n",
        "\n",
        "scores = cross_val_score(estimator=pipe_reg, \n",
        "                         X=X_train, \n",
        "                         y=y_train, \n",
        "                         scoring = SCORER,\n",
        "                         cv=RepKFold,\n",
        "                         n_jobs=-1)\n",
        "\n",
        "print('CV accuracy scores: %s' % scores)\n",
        "print('CV accuracy: %.3f +/- %.3f' % (np.mean(scores), np.std(scores)))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "CV accuracy scores: [0.975      0.99166667 0.96666667 0.975     ]\n",
            "CV accuracy: 0.977 +/- 0.009\n",
            "CPU times: user 25.1 ms, sys: 31 ms, total: 56.1 ms\n",
            "Wall time: 1.1 s\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4HUhUw3CZrTv",
        "colab_type": "text"
      },
      "source": [
        "### Stratified K-Fold Cross-Validation\n",
        "\n",
        "We can also use stratified k-fold cross-validation, as it can yield better bias and variance estimates in cases of unequal class proportions than RepeatedKFold<sup>1,2</sup>. This is because \"stratified\" refers to sampling where the classes are separated into \"strata\" and a probability sample is drawn from each group<sup>3</sup>.\n",
        "\n",
        "As can be seen below we have twice as much baseline data (inter-ictal) than seizure (ictal).\n",
        "\n",
        "---\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017.\n",
        "2. R. Kohavi et al. A Study of Cross-validation and Bootstrap for Accuracy Estimation and Model Selection. In Ijcai, volume 14, pages 1137–1145, 1995\n",
        "3. https://stattrek.com/statistics/dictionary.aspx?definition=stratified_sampling"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "m9rcFAB1Z1i_",
        "colab_type": "code",
        "outputId": "a5ea4bf3-2897-4918-ca82-fc6a419941ed",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 74
        }
      },
      "source": [
        "feature_reduced['class'].value_counts()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "baseline    200\n",
              "seizure     100\n",
              "Name: class, dtype: int64"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 33
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "whkscWc4Z4ev",
        "colab_type": "code",
        "outputId": "8fee045c-28c4-4240-8268-fd66528c6fee",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 132
        }
      },
      "source": [
        "from sklearn.model_selection import StratifiedKFold\n",
        "N_SPLITS = 10\n",
        "\n",
        "StratKFold = StratifiedKFold(n_splits = N_SPLITS,\n",
        "                             shuffle=False,\n",
        "                             random_state=RANDOM_STATE)\n",
        "\n",
        "scores = cross_val_score(estimator=pipe_reg, \n",
        "                         X=X_train, \n",
        "                         y=y_train, \n",
        "                         scoring = SCORER,\n",
        "                         cv=StratKFold,\n",
        "                         n_jobs=-1)\n",
        "\n",
        "print('CV accuracy scores: %s' % scores)\n",
        "print('CV accuracy: %.3f +/- %.3f' % (np.mean(scores), np.std(scores)))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "CV accuracy scores: [1.         0.95833333 0.95833333 1.         1.         0.91666667\n",
            " 1.         1.         1.         1.        ]\n",
            "CV accuracy: 0.983 +/- 0.028\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_split.py:296: FutureWarning: Setting a random_state has no effect since shuffle is False. This will raise an error in 0.24. You should leave random_state to its default (None), or set shuffle=True.\n",
            "  FutureWarning\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iy8rODmLZ32A",
        "colab_type": "text"
      },
      "source": [
        "### Cross-Validation ROC Curve\n",
        "\n",
        "ROC curves can also be used to see the difference in performance at each fold. Lets look at k-nearest neighbour."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "LcuC6y5baU_Q",
        "colab_type": "code",
        "outputId": "977b76c8-af6c-4622-f718-e6834d881313",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 775
        }
      },
      "source": [
        "from sklearn.metrics import roc_curve, roc_auc_score, auc\n",
        "from scipy import interp\n",
        "\n",
        "def cross_val_ROC(classifier, cross_validator, data_x, data_y, n_splits, \n",
        "                  image_file_path):\n",
        "\n",
        "  fig, ax = plt.subplots(figsize=(8, 8))\n",
        "  # default mean true positive rate\n",
        "  mean_tpr = 0.0\n",
        "  # default mean false positive rate\n",
        "  mean_fpr = np.linspace(0, 1, 100)\n",
        "\n",
        "  i = 0\n",
        "  for train_index, validation_index in cross_validator.split(data_x, data_y):\n",
        "    # fit the pipeline\n",
        "    probas = classifier.fit(\n",
        "        data_x[train_index],\n",
        "        data_y[train_index]).predict_proba(data_x[validation_index])\n",
        "\n",
        "    # get the roc curve info\n",
        "    fpr, tpr, thresholds = roc_curve(data_y[validation_index], \n",
        "                                     probas[:, 1], \n",
        "                                     pos_label=1)\n",
        "\n",
        "    mean_tpr += interp(mean_fpr, fpr, tpr)\n",
        "    mean_tpr[0] = 0.0\n",
        "    roc_auc = auc(fpr, tpr)\n",
        "    i+=1\n",
        "    plt.plot(fpr, \n",
        "             tpr, \n",
        "             lw=1, \n",
        "             label='ROC fold %d (area = %0.2f)' \n",
        "                    % (i, roc_auc))\n",
        "\n",
        "  plt.plot([0, 1], \n",
        "           [0, 1], \n",
        "           linestyle='--', \n",
        "           color=(0.6, 0.6, 0.6), \n",
        "           label='random guessing')\n",
        "\n",
        "  mean_tpr /= n_splits\n",
        "  mean_tpr[-1] = 1.0\n",
        "  mean_auc = auc(mean_fpr, mean_tpr)\n",
        "  plt.plot(mean_fpr, mean_tpr, 'k--',\n",
        "           label='mean ROC (area = %0.2f)' % mean_auc, lw=2)\n",
        "  plt.plot([0, 0, 1], \n",
        "           [0, 1, 1], \n",
        "           lw=2, \n",
        "           linestyle=':', \n",
        "           color='black', \n",
        "           label='perfect performance')\n",
        "\n",
        "  plt.xlim([-0.05, 1.05])\n",
        "  plt.ylim([-0.05, 1.05])\n",
        "  plt.xlabel('false positive rate')\n",
        "  plt.ylabel('true positive rate')\n",
        "  plt.title('Receiver Operator Characteristic on Test Set ('\n",
        "            +str(n_splits)+' StratifiedKFold splits)')\n",
        "  plt.legend(loc=\"lower right\")\n",
        "\n",
        "  plt.tight_layout()\n",
        "  plt.savefig(image_file_path, dpi=300)\n",
        "  plt.show()\n",
        "\n",
        "cross_val_ROC(pipe_kkn, StratKFold, X_train, y_train, N_SPLITS, 'KNN_ROC.png')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:25: DeprecationWarning: scipy.interp is deprecated and will be removed in SciPy 2.0.0, use numpy.interp instead\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nwVNPPcX+/fvZsWMHGzdu5F//+hdgPZPp4Ycf5t1332XPnj1kZ2cTHR190fN/++23AGzfvp1bb721\nxXJHRkaybt06vvvuO373u9/xs5/9rNHHLV++nIEDB17RKipzwzzR1vLggw/y+uuvk5ubS25uLitX\nrrzoMbF8YZwAACAASURBVM899xyJiYns3LmTt99+m0cffRSw/n94/fXX2bp1Kzt27CAjI8O2U/Qj\njzxiO/3dUaTgCNEGFBUVkZ6ejpOTE9OnTycwMNDoSEK0KSNGjLCdUP3ee+8xatQoJk2aBFj3hXrp\npZdsPzCff/555s2bZ9vN19nZmQcffPC85zt16hQ//vGP2bZtG4mJiRw6dIisrCySkpLo378/9957\nL7W1tRflWLx4MTExMQwdOpQNGzY0mnXkyJG2r+Hhw4fb9q+60JIlS7jxxhttt2+66SYGDx5MQkIC\nr732mu1+Hx8fHn/8cQYOHMimTZvIyclh7NixDB48mMmTJ1NYWAjA66+/zpAhQxg4cCCzZs2iqqrq\n8v+wl1BYWMjZs2cZPnw4SinuvvtuPv3004set2fPHsaPHw9A3759OXr0KCdPnmTv3r0MGzYMLy8v\nXFxcGDt2LB9//DEAvXv3pqioiBMnTlxTxkuROTgX0NXVlJWV4eXlhaurq9FxRCexdetWXFxcSEtL\nw9/f3+g4QlzsGQd8Xj5T1qyHmc1msrKybLve7t69+6ITqK+77joqKio4e/Ysu3btavSSlL3Q0FD+\n/e9/87e//Y2MjAxqampISUkhKyuLmJgY7r77bl5++eXzThMvLCzkD3/4Azk5Ofj7+zNu3DiSkpIu\n+TpvvPEGU6dObfR9GzZs4NVXX7XdfvPNN+nSpQvV1dUMGTKEWbNmERQURGVlJcOGDWPBggXU19cz\nduxYli1bRkhICB9++CHz5s3jzTffZObMmdx///0APP3007zxxhs88sgj573mlRy2mZ+fT3h4uO12\neHi4rWTaGzhwIB9//DHXX389W7du5fvvvycvL49+/foxb948ioqK8PT0ZPny5SQn/7Dh8KBBg9iw\nYYPDTg2QgmPnt388zJnDNxFw5hSLFy9mzpw5RkcSncT48eOpq6vD19fX6ChCNK6ZZaQlVVdXk5iY\nSH5+PnFxcUycONFhr7V//34iIyOJiYkB4J577mHRokXnFZwtW7aQkpJiW9V466232g70bMyaNWt4\n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\nVPz8/Iw+p127dmzcuJGPP/4YjUaDVquVk5PZs2fj6+tLQECAvMD6US1ZsoR33nkHZ2dn+vbty9Ch\nQwFYunSpnDQ29/v6+vry+uuv4+npiVqtpr6+nnfffRfQly+xtLTkhRdeaJE4jVEY29P+JPPy8pKM\n1SNoCS90a8elyzWcPn0aJycnk5zDFE6dOsXOnTuxt7dn6NChtGvXrrVDEgThKXfs2LGndqr+aVFS\nUkJ0dDTbt29v7VAeuy+//BIbGxt54fiDMva+VCgUWZIked09VlzBMfA0tmq4cOECO3fupFu3biK5\nEQRBeIo4ODgQExPzRBf6M5VOnToxbtw4k55DLNIwUFGhL6D0NCU4L7zwAp6ennh4eNC2bdvWDkcQ\nBEF4CGPGjGntEFrFH/7wB5OfQ1zBMXC7Qn8J52lIcE6dOkVlZSVmZmb0799fJDeCIAiCYEAkOAa8\ndB1oq/OmU6dOrR3KPeXn55OamiqXGRcEQRAEoTExRWVg3py+RFp+g4WFRWuH0qzc3FzS09Pp1asX\nPj4+rR2OIAiCIDyRRILzFPnll1/Yv38/L774IoMGDXoqptIEQRAEoTWIKSoDCatLuLV8MTU1Na0d\nShO1tbXk5+fj5OTE4MGDRXIjCMIzz9zcHK1Wi0qlYvjw4ZSVlcmP5eXlERISglKppF+/fsyePRvD\nsicpKSl4eXnh5uaGTqcz2puqurqawYMHo9Vq2bBhQ7NxBAUFYaw8ycqVK+XaO4aOHz+Ov78/v/nN\nb5g/f36jx7Zs2YJSqcTZ2VluDmrMH//4xybVmp8k33//Pe7u7piZmRl9bRo09/ueOXMGX19fnJ2d\niYiIkAsFLl68mBUrVrRIjCLBMbB6/SUqEpebtLvpryFJEm3atCE8PJxBgwY9tZWWBUEQHkZDq4bc\n3Fzs7OyIj48H9JWLw8PDmTp1KgUFBeTk5JCens6SJUsA/VR+bGwsa9asIT8/n8zMTJydnZscv2Ed\nY3Z2NhERES0Wt52dHYsWLeKjjz5qdH9dXR3vv/8+KSkp5Ofns27dOvLz85s8v7S0lIyMjP+/vTuP\ny6rKHzj+ObiBu5PihlsuyL4IKCEKGmKuiZYaTS6lvzSnaRltrNFstVEyy5yZnErK0TQ1c0kb0zRF\nUxZBU0RFxd1EXBGQ7fz+eB7ugICgAo/C9/168ep57nPuvd97fJKv5557vvTo0aPU56zo31vOzs58\n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\nIYQQQlQ6/w9hLYCFIl/S2gAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<Figure size 576x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6Fh0lUXWbEhh",
        "colab_type": "text"
      },
      "source": [
        "### Cross-Validation Precision Curve\n",
        "\n",
        "We can also use the precision curves on each fold as well."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ejvABN6hbD8h",
        "colab_type": "code",
        "outputId": "e0376f67-df99-4f83-83b8-30b0a2729708",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 585
        }
      },
      "source": [
        "from sklearn.metrics import precision_recall_curve\n",
        "#from sklearn.utils.fixes import signature\n",
        "from sklearn.externals import joblib\n",
        "from sklearn.metrics import average_precision_score\n",
        "\n",
        "def cross_val_precision_curve(classifier, cross_validator, data_x, data_y, \n",
        "                              n_splits, image_file_path):\n",
        "  fig, ax = plt.subplots(figsize=(8, 8))\n",
        "  # default mean true positive rate\n",
        "  mean_tpr = 0.0\n",
        "  # default mean false positive rate\n",
        "  mean_fpr = np.linspace(0, 1, 100)\n",
        "\n",
        "  i = 0\n",
        "  for train_index, validation_index in cross_validator.split(data_x, data_y):\n",
        "\n",
        "    # fit the pipeline\n",
        "    classifier.fit(data_x[train_index],data_y[train_index])\n",
        "\n",
        "    y_score = classifier.decision_function(data_x[validation_index])\n",
        "\n",
        "    precision, recall, _ = precision_recall_curve(data_y[validation_index], y_score)\n",
        "\n",
        "    average_precision = average_precision_score(data_y[validation_index], y_score)\n",
        "\n",
        "    plt.step(recall, precision, alpha=0.2, where='post', label='fold %d (PREC = %0.2f)'% (i, average_precision))\n",
        "\n",
        "  plt.xlabel('Recall')\n",
        "  plt.ylabel('Precision')\n",
        "  plt.ylim([0.0, 1.05])\n",
        "  plt.xlim([0.0, 1.0])\n",
        "  plt.title('2-class Precision-Recall curve on Test Set ('+str(n_splits)+' StratifiedKFold splits)')\n",
        "  plt.legend(loc=\"lower right\")\n",
        "\n",
        "  plt.tight_layout()\n",
        "  plt.savefig(image_file_path, dpi=300)\n",
        "  plt.show()\n",
        "\n",
        "cross_val_precision_curve(pipe_reg, StratKFold, X_train, y_train, N_SPLITS, \n",
        "                          'REG_PREC_REC.png')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAI4CAYAAABndZP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdf3xU5Z33//dHYiQVESV0KwlroKMh\nQAKaRKBIRFAJi6a5XUX8Uku79gcIiqx37up3qbC1RVtUVhTB3dViLUu04i5oa9SyUFfuZfmxi1iC\nFCRUQKwYlB9WEoPX/cc5GSeZmUxIMgycvJ6PRx5kzrnmnM85M5l5c53rnGPOOQEAAATJGakuAAAA\noKMRcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcALEzL5lZm+kuo6OZmZbzWxUgjZ/aWZH\nzazLSSor6cxst5ld5f8+x8x+meqa0LHMbIaZPZDqOjqKmS0xs/8T8fhOM/vA/9s81/+3dxuW29XM\nnJlld2zFUet538wujzOv1Mx2dvD6mmxX8/13AsvJ9j8nz+zI+k53BJwUM7OzzOxJM/ujmR0xs81m\nNi7VdbWG/wX8qf+h9Sf/j7NbR6/HOTfQObcmQZt3nXPdnHPHO3r9frj4zN/Oj83s/5rZ8I5eD6JF\nBNfGH2dmn0Q8HtmOZcf9MvPnm5nN9t/nR81sj5k908plTzGz3yZokyHpB5Iejpi2xMx2mNnnZjYx\nxnPu9v/WDpnZEy19oZnZVDP7g1/7+2b2kr9OmVmlmc1qzba0sPyobXTOfcs59zN//tmSfiZppP+3\necj/9732rNdfdpP6zWyIH6Sm+4/fN7M/N3vv9GzvepOt2f5rdaByzu2V9F+SvpXE8k47BJzUS5O0\nR9IVks6VNEvSc2aWk8KaTsR1zrluki6VVCSv/ib8L4rT/b32rL+dmZJWS/pViuvpcGaWluoamosI\nrt38/S9JgyOm/UcSV/89SX8t6Up/3UMl/a4Dl3+DpE3OuQ8ipv23v97fN29sZl+XdIekEkn9JOVL\n+rtYCzazsfL+Fv/ar32QpBdaW1gHvRcukHSGc257BywrLjMrlvRbSX/nnHssYtY1ke8d51xtMus4\nBSyV9P1UF3EqOd2/dE57zrlPnHNznHO7nXOfO+deklQjqTDec8ysj5m9YGYHzKzWzB6L0+4R/3+d\nh81sU+T/ds3sMjPb6M/7k5k97E/vama/9Jf7sZltMLO/aMV27JP0srwPUpnZGjP7iZmtlfRnSf38\nLuonzWy/me0zsx9bxCElM/uumW3ze7KqzexSf3rkoZp4def4/7tP8x/3NrOVZnbQzHaa2Xcj1jPH\nzJ4zs1/469pqZkWJttHfzgZ5HyRZZtYrYpnXmtf71tjDUxAxL+brZWZfNbN/96d9aGZLzaxHa+po\nzsy+7q//sJm9Y2alzfddxLb/stk+u9XM3pX072b2cuP/giOe86aZXe//3t/MXvP363Yzm9BCTUl5\nDWKsJ8PM/sF/r79vZo+a2Vn+vK+YWZX/utSa2b/7038l6cuSXjXvf/d3xFh0saTfOOdqJMk5955z\n7p8j1nu+X//7/rpnm9kZZnaJpH+QNMpf9vtxSh+nZoHJObfAObdaUn2M9pMlLXbObfe/rH+i+P9j\nL5b0H865t/zlfuice8o596m/rX8t6Yd+fb/yt+d9M/vfZrZV0mF/2r1mVuO/Rr83s/H+9JjbaH7P\nipnlS3pTUhd//ssWfTgm7uvmz/87/298r6RvxNpIMxsh6RVJM51z/xRnXzR/zl+b9/nysZn91swu\nitPubP9v8mMze0vSJS0ss4uZLfT/xg/5fzO5EfvkUTNb7e/HVWaWFWc5jfuvp6R/lfe5Ge6BMrMR\nZvY//t/5+2Z2f8TT10oqsFZ8Xncazjl+TqEfSX8h6Zik/nHmd5H3wTFf0tmSukq63J/3LUlvRLT9\nhqSe8nqJ7pL0vqSu/rz/lHSL/3s3ScP8378v6UVJX/LXVSipe5xadku6yv+9j6Stku7zH6+R9K6k\ngf76z5T3B/uEX/eXJa2X9H2//Y2S9sn7YDZJIUkXxlhPvLpzJDlJaf7j1yU97u+fIZIOSBrtz5vj\n7+O/8rfxfknrWnhN5kj6pf97uqQHJH0Ysa5LJH0g73/4XeR9Ee2WdFaC1ysk6Wq/XS+/5n+Is3/D\nNcSo7zJJh/xlnSEpS/77J3IZMbalcZ/9wq8tQ9I3Ja2NaD9A0sd+jWfL6238tv+aXuLvhwFx6uqw\n1yBimU5SqNm0RZKel9RDXi/oK5Jm+/PmS3rErzddUknE895vfC3irOs7fs1/K6+Hskuz+S9LelTe\n38oFkv5H0mR/3hRJv02wLW/J6wGNNW+jpInNpm2X9PWIx9n+/ugW4/lXyfuPxb2ShktKbza/UtKs\n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\n34JnJf0vMyvx675bXkDaGKPtc5L+zryTIy6UdFu8hZrZMDMr8v8j84m8nvjIz6Wv+58PZ0n6sbxD\n8x/EWlaEP0n6skX0BJnZN82sp9/zdEheCGoMQl+T9Hvn3J8SLLfTIOCkmP+H8315gzDft6aHo6L4\nb+zr5H3QvCtpr7yxEc29IqlK3jHqP8r7AIjsbi2V1z18VF7X+kQ/XH1F3sC/w/K6f38n77BVR/im\nvIF91fK655+XN4BRzrlfyTuc8C/yjp3/m7xj1c3Fq7u5m+X9b+Y9eYObZzvnWrwuyQmaJ+l7ZvZl\n59xGSd+V9Ji/XTvln92S4PX6e3mDVw/JOyzU6tN4Iznn1ssb/zHfX9bv9MX/Un8or3fnI399/9KK\n5dX5tVwV2d4/3HSNvMNX78k7xPRTeQOQY0n2a9DoTn8dG+Vtf5W++CLOk9cDdUReD8aDzrn/9Of9\nRNJPzDtEMl3RjkiaLe81+0jSfZJudc5t8OffLO/wz9uSDsr78mw8RFUlb/zTB+adBRTLC5IKLeJs\nPL/GT+W9L37h/z5Ukpxz/ybvPfaGvDMtq/1tiOUjeV/I78j7W35K0t8755b78/9RUrG/7ZWxFuCc\n+295A2I3ygvpfdU0CLRmG1sS93Vzzv2rX+N/yNu/r8RbiHPumLzxRmmS/tUizsSK0XaLvKD9hLzg\nNkbewO1Yh/xnyRt39a68v89ftLAtPeSFzY8l7ZL3mftIxPxf6ouTE/LkHWpK5E1JKyX90X+dzpfX\no77dzI7IG9M2IaLHf5K81ws+c649vYwAgLYy75Tt3s65u1NdC5LDD5C/d879OInryJLXQz4kcohD\nZ3fKXdgLADoL59yCVNeA05/zrkM2MGHDToZDVAAAIHA4RAUAAAKHHhwAABA4p90YnMzMTJeTk5Pq\nMgAAwEmwadOmD51zvRK3bOq0Czg5OTnauDHWJQsAAEDQmFlLV5GOi0NUAAAgcAg4AAAgcAg4AAAg\ncAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4\nAAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcAg4AAAgcJIWcMzsKTP7wMx+H2e+mdkC\nM9tpZlvM7NJk1QIAADqXZPbgLJFU2sL8cZIu8n++J2lREmsBAACdSNICjnPudUkHW2jydUm/cJ51\nknqY2QXJqgcAAHQeaSlcd5akPRGP9/rT9rf0pA9rP9BTSx5JZl0AgFOIndFFXdJS+XWVWu6MdLkz\n0lNdxmnntBhkbGbfM7ONZrax4bOGVJcDADhJPj/+udznx1NdRsqY+1z2eX2qyzgtmXMueQs3y5H0\nknNuUIx5T0ha45xb5j/eLmmUc67FHpyioiK3cePGJFQLADjVHHxvnyTp/N5ZKa4kRT7c6f2bGUpt\nHSlkZpucc0Un+rxU9uCslPRN/2yqYZIOJQo3AAAArZG0g5pmtkzSKEmZZrZX0mxJZ0qSc26xpN9I\n+itJOyX9WdK3k1ULAADoXJIWcJxzNyeY7yRNS9b6AQBA53VaDDIGAAA4EQQcAAAQOAQcAAAQOAQc\nAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQ\nOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQc\nAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQ\nOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQc\nAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOGmpLgAAAMRRf8T798Odqa3jNEQPDgAA\nCBx6cAAAONVlhlJdwWmHHhwAABA4BBwAABA4BBwAABA4BBwAABA4DDIGAJyyPjv2qSTp4Hv7UlxJ\ninzwobp+KUNfSnUdpyF6cAAAOEU1KF3HGrqkuozTEj04AIBT3vm9s1JdQkocTHUBpzF6cAAAQOAQ\ncAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOBwHRwAwCkrPSMj1SXgNEXAAQCcss67\noHNe4A/txyEqAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQc\nAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQ\nOAQcAAAQOAQcAAAQOAQcAAAQOAQcAAAQOEkNOGZWambbzWynmd0dY/5fmtlqM/sfM9tiZn+VzHoA\nAEDnkLSAY2ZdJC2UNE7SAEk3m9mAZs1mSXrOOXeJpImSHk9WPQAAoPNIZg/OZZJ2Oud2OefqJVVK\n+nqzNk5Sd//3cyW9l8R6AABAJ5HMgJMlaU/E473+tEhzJH3DzPZK+o2k22MtyMy+Z2YbzWzjgQMH\nklErAAAIkFQPMr5Z0hLnXLakv5L0jJlF1eSc+0fnXJFzrqhXr14nvUgAAHB6SWbA2SepT8TjbH9a\npFslPSdJzrn/lNRVUmYSawIAAJ1AMgPOBkkXmVlfM0uXN4h4ZbM270oaI0lmlicv4HAMCgAAtEvS\nAo5zrkHSdEmvSNom72yprWb2IzMr85vdJem7ZvampGWSvuWcc8mqCQAAdA5pyVy4c+438gYPR067\nN+L3akkjklkDAADofFI9yBgAAKDDEXAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDg\nEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAA\nAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDg\nEHAAAEDgEHAAAEDgpKW6AAAAENtnxz6VJB18b1+KKzn90IMDAAAChx4cAABOcef3zkp1CacdenAA\nAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDg\nEHAAAEDgEHAAAEDgcLNNAABOUekZGaku4bRFwAEA4BR13gXcRbytOEQFAAACh4ADAAACh4ADAAAC\nh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4AD\nAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAAC\nh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4AD\nAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAACh4ADAAAC\nh4ADAAACh4ADAAACJ6kBx8xKzWy7me00s7vjtJlgZtVmttXM/iWZ9QAAgM4hLVkLNrMukhZKulrS\nXkkbzGylc646os1Fku6RNMI595GZfTlZ9QAAgM4jmT04l0na6Zzb5Zyrl1Qp6evN2nxX0kLn3EeS\n5Jz7IIn1AACATiKZASdL0p6Ix3v9aZEulnSxma01s3VmVhprQWb2PTPbaGYbDxw4kKRyAQBAUKR6\nkHGapIskjZJ0s6R/MrMezRs55/7ROVfknCvq1avXSS4RAACcbpIZcPZJ6hPxONufFmmvpJXOuc+c\nczWS/iAv8AAAALRZMgPOBkkXmVlfM0uXNFHSymZt/k1e743MLFPeIatdSawJAAB0AkkLOM65BknT\nJb0iaZuk55xzW83sR2ZW5jd7RVKtmVVLWi2pwjlXm6yaAABA52DOuVTXcEKKiorcxo0bU10GAAA4\nCcxsk3Ou6ESfl+pBxgAAAB2OgAMAAAKHgAMAAAKHgAMAAAKHgAMAAAKHgAMAAAKHgAMAAAKHgAMA\nAAKHgAMAAAKHgAMAAAInrbUNzSxL0oWRz3HOvZ6MogAAANqjVQHHzH4q6SZJ1ZKO+5OdJAIOAAA4\n5bS2B6dcUq5zri6ZxQAAAHSE1o7B2SXpzGQWAgAA0FFa24PzZ0mbzWyVpHAvjnPujqRUBQAA0A6t\nDTgr/R8AAIBTXqsCjnPuaTNLl3SxP2m7c+6z5JUFAADQdq09i2qUpKcl7ZZkkvqY2WROEwcAAKei\n1h6iekjSNc657ZJkZhdLWiapMFmFAQAAtFVrz6I6szHcSJJz7g/irCoAAHCKam0PzkYz+2dJv/Qf\nT5K0MTklAQAAtE9rA85USdMkNZ4W/h+SHk9KRQAAAO3U2rOo6iQ97P8AAACc0loMOGb2nHNugpm9\nJe/eU0045wqSVhkAAEAbJerBmeH/e22yCwEAAOgoLZ5F5Zzb7//6oaQ9zrk/SjpL0mBJ7yW5NgAA\ngDZp7Wnir0vqamZZkl6VdIukJckqCgAAoD1aG3DMOfdnSddLetw5d6OkgckrCwAAoO1aHXDMbLi8\n69/82p/WJTklAQAAtE9rA86dku6R9K/Oua1m1k/S6uSVBQAA0HatvQ7O7yT9LuLxLn1x0T8AAIBT\nSqLr4PyDc+5OM3tRsa+DU5a0ygAAANooUQ/OM/6/Dya7EAAAgI7SYsBxzm3yf90o6VPn3OeSZGZd\n5F0PBwAA4JTT2kHGqyR9KeJxhqTfdnw5AAAA7dfagNPVOXe08YH/+5daaA8AAJAyrQ04n5jZpY0P\nzKxQ0qfJKQkAAKB9WnWauLzr4PzKzN6TZJK+IummpFUFAADQDq29Ds4GM+svKdeftN0591nyygIA\nAGi7Vh2iMrMvSfqBpBnOud9LyjGza5NaGQAAQBu1dgzOzyXVSxruP94n6cdJqQgAAKCdWhtwvuqc\n+5mkzyTJv7O4Ja0qAACAdmhtwKk3swz5t2sws69KqktaVQAAAO3Q2rOoZkuqktTHzJZKGiHpW8kq\nCgAAoD0SBhwzM0lvS7pe0jB5h6ZmOOc+THJtAAAAbZIw4DjnnJn9xjmXL+nXJ6EmAACAdmntGJz/\nNrPipFYCAADQQVo7BmeopG+Y2W5Jn8g7TOWccwXJKgwAAKCtWhtwxia1CgAAgA7UYsAxs66SpkgK\nSXpL0pPOuYaTURgAAEBbJRqD87SkInnhZpykh5JeEQAAQDslOkQ1wD97Smb2pKT1yS8JAACgfRL1\n4ITvGM6hKQAAcLpI1IMz2MwO+7+bpAz/ceNZVN2TWh0AAEAbtBhwnHNdTlYhAAAAHaW1F/oDAAA4\nbRBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBw\nAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA\n4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBwAABA4BBw\nAABA4BBwAABA4BBwAABA4CQ14JhZqZltN7OdZnZ3C+3+2sycmRUlsx4AANA5JC3gmFkXSQsljZM0\nQNLNZjYgRrtzJM2Q9F/JqgUAAHQuyezBuUzSTufcLudcvaRKSV+P0e4+ST+VdCyJtQAAgE4kmQEn\nS9KeiMd7/WlhZnappD7OuV8nsQ4AANDJpGyQsZmdIelhSXe1ou33zGyjmW08cOBA8osDAACntWQG\nnH2S+kQ8zvanNTpH0iBJa8xst6RhklbGGmjsnPtH51yRc66oV69eSSwZAAAEQTIDzgZJF5lZXzNL\nlzRR0srGmc65Q865TOdcjnMuR9I6SWXOuY1JrAkAAHQCSQs4zrkGSdMlvSJpm6TnnHNbzexHZlaW\nrPUCAACkJXPhzrnfSPpNs2n3xmk7Kpm1AACAzoMrGQMAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAA\ngMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh\n4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAAgMAh4AAA\ngMAh4AAAgMAh4AAAgMAh4OaXcWQAACAASURBVAAAgMAh4AAAgMAh4AAAgMAh4AAAgMBJS3UBAIDg\n++yzz7R3714dO3Ys1aXgFNW1a1dlZ2frzDPP7JDlEXAAAEm3d+9enXPOOcrJyZGZpbocnGKcc6qt\nrdXevXvVt2/fDlkmh6gAAEl37Ngx9ezZk3CDmMxMPXv27NAePgIOAOCkINygJR39/iDgAACAwCHg\nAAA6hQULFigvL0+TJk2K22bJkiWaPn16zHndunWLOb2qqkq5ubkKhUJ64IEH4i77zjvv1Ouvvy5J\nGjVqlHJzczV48GCNGDFC27dvj5peXFyszZs3h5+fk5Oj/Px8DRkyREOGDNEdd9wRnvfggw+qf//+\nGjJkiIqLi/WLX/wi/o5opdLSUvXo0UPXXntt3DZ1dXW66aabFAqFNHToUO3evTs87/7771coFFJu\nbq5eeeUVSVJ9fb1KSkrU0NDQ7voSIeAAADqFxx9/XK+99pqWLl3aYcs8fvy4pk2bppdfflnV1dVa\ntmyZqquro9rV1tZq3bp1KikpCU9bunSp3nzzTU2ePFkVFRVR02+77bYm0yVp9erV2rx5szZv3qwF\nCxZIkhYvXqzXXntN69ev1+bNm7Vq1So559q9bRUVFXrmmWdabPPkk0/qvPPO086dOzVz5kz94Ac/\nkCRVV1ersrJSW7duVVVVlW677TYdP35c6enpGjNmjJ599tl215cIAQcAcFK99/Gn2nXgaIf+vPfx\npy2uc8qUKdq1a5fGjRun+fPn6+DBgyovL1dBQYGGDRumLVu2RD2npqZGw4cPV35+vmbNmhVzuevX\nr1coFFK/fv2Unp6uiRMnasWKFVHtli9frtLS0pjLKCkp0c6dO6OmDx8+XPv27WtxuyRp7ty5WrRo\nkbp37y5J6t69uyZPnpzweYmMGTNG55xzTottVqxYEV7XDTfcEA5XK1as0MSJE3XWWWepb9++CoVC\nWr9+vSSpvLy8Q0NmPAQcAEDgLV68WL1799bq1as1c+ZMzZ49W5dccom2bNmiuXPn6pvf/GbUc2bM\nmKGpU6fqrbfe0gUXXBBzufv27VOfPn3Cj7Ozs2OGkrVr16qwsDDmMl588UXl5+dHTa+qqlJ5eXmT\naVdeeWX4ENX8+fN1+PBhHTlyRP369Wtx+yVp3rx54edG/kQe6jpRkduflpamc889V7W1tS3ul0GD\nBmnDhg1tXmdrcR0cAMBJ1btHRqpL0BtvvKHly5dLkkaPHq3a2lodPny4SZu1a9eG29xyyy3hwy9t\nsX//fvXq1avJtEmTJikjI0M5OTl69NFHm0yvr6/X0aNHm4zBkbxDVJmZmeHHzWtuSUVFRdQhr1To\n0qWL0tPTdeTIkYQ9RO1BwAEAII5Epy5nZWVpz5494cd79+5VVlZWVLuMjIyoa7wsXbpURUVFUW2X\nLl2qwsJCVVRU6Pbbb9cLL7wQd/3du3dXt27dtGvXroS9OPPmzYt5aKikpCQ8nudENW5/dna2Ghoa\ndOjQIfXs2TPhfqmrq1PXrl3btM7W4hAVAKDTGTlyZPjLfs2aNcrMzAyPYWk0YsQIVVZWSlLcMSPF\nxcXasWOHampqVF9fr8rKSpWVlUW1y8vLiznOJh4z03333ad169bp7bffbrHtPffco2nTpoV7c44e\nPRrzLKqKiorwAOXIn7aGG0kqKyvT008/LUl6/vnnNXr0aJmZysrKVFlZqbq6OtXU1GjHjh267LLL\nJHkDrjMzMzvslgzxEHAAAJ3OnDlztGnTJhUUFOjuu+8Of0lHeuSRR7Rw4ULl5+fHHeyblpamxx57\nTGPHjlVeXp4mTJiggQMHRrUbP3681qxZc0I1ZmRk6K677tK8efPC0yLH4DSOG5o6daquvPJKFRcX\na9CgQRo5cqTOOKP9X+8jR47UjTfeqFWrVik7Ozt8qve9996rlStXSpJuvfVW1dbWKhQK6eGHHw6f\nJj9w4EBNmDBBAwYMUGlpqRYuXKguXbpI8g6zjR8/vt31JWIdcSrZyVRUVOQ2btyY6jIAACdg27Zt\nysvLS3UZKXX55ZfrpZdeUo8ePVJdSkpdf/31euCBB3TxxRdHzYv1PjGzTc656GN5CdCDAwDASfDQ\nQw/p3XffTXUZKVVfX6/y8vKY4aajMcgYAICTYOjQoakuIeXS09NjnpKfDPTgAACAwCHgAACAwCHg\nAACAwCHgAACAwCHgAAA6hQULFigvL0+TJk2K22bJkiWaPn16zHndunWLOb2qqkq5ubkKhULh68DE\ncuedd+r111+XJI0aNUq5ubkaPHiwRowYoe3bt0dNLy4ubnKrhpycHOXn58e8h9SDDz6o/v37a8iQ\nISouLo55ob8T9fTTT+uiiy7SRRddFPM6QZL05ptvhm9Iet1114UvNlhfX69vf/vbys/P1+DBg5tc\nA+iqq67SRx991O76EnLOnVY/hYWFDgBweqmurk51CS43N9ft2bOnxTY///nP3bRp02LOO/vss6Om\nNTQ0uH79+rl33nnH1dXVuYKCArd169aodh9++KEbOnRo+PEVV1zhNmzY4Jxz7oknnnDXXXdd1PSn\nnnrKXXXVVeHnXHjhhe7AgQNRy160aJG75ppr3KFDh5xzzh06dMgtWbKkxe1MpLa21vXt29fV1ta6\ngwcPur59+7qDBw9GtSsqKnJr1qxxzjn35JNPulmzZjnnnHvsscfct771Leecc3/605/cpZde6o4f\nP+6cc27JkiXuxz/+ccz1xnqfSNro2pAX6MEBAJxch/ZKH+7s2J9De1tc5ZQpU7Rr1y6NGzdO8+fP\n18GDB1VeXq6CggINGzZMW7ZsiXpOTU1NuHdi1qxZMZe7fv16hUIh9evXT+np6Zo4caJWrFgR1W75\n8uUqLS2NuYySkpKYt3EYPnx43CsoR5o7d64WLVoUvtVE9+7dNXny5ITPa8krr7yiq6++Wueff77O\nO+88XX311aqqqopq94c//EElJSWSpKuvvjp8c9Lq6mqNHj1akvTlL39ZPXr0UONFesvKyrRs2bJ2\n1dcaBBwAQOAtXrxYvXv31urVqzVz5kzNnj1bl1xyibZs2aK5c+fGvDbLjBkzNHXqVL311lu64IIL\nYi5337596tOnT/hxdnZ2zFCydu1aFRYWxlzGiy++qPz8/KjpVVVVKi8vbzIt8lYN8+fP1+HDh3Xk\nyJGEN9qUvJttNj438ifyUNeJbtfAgQPDge5Xv/pV+AabgwcP1sqVK9XQ0KCamhpt2rQpPO+8885T\nXV2damtrE9bcHlzoDwBwcp2bneoK9MYbb4R7G0aPHq3a2trw+JFGa9euDbe55ZZb9IMf/KDN69u/\nf7969erVZNqkSZOUkZGhnJwcPfroo02m19fX6+jRo03G4EjefZwyMzPDj5vX3JKKigpVVFS0cQti\ne+qpp3THHXfovvvuU1lZmdLT0yVJf/M3f6Nt27apqKhIF154ob72ta+F70Uleb067733nnr27Nmh\n9UQi4AAAEIeZtTg/Kysr3DMhSXv37lVWVlZUu4yMDB07dqzJtKVLl6qoKPoWS0uXLlVhYaEqKip0\n++2364UXXoi7/u7du6tbt27atWtXwl6cefPmxbwreklJSdQdxbOyspoMDN67d69GjRoV9dz+/fvr\n1VdfleQdrvr1r38tybsJ6fz588Ptvva1rzW5PcOxY8eUkZHRYr3txSEqAECnM3LkyPCX/Zo1a5SZ\nmRkew9JoxIgRqqyslKSYwUCSiouLtWPHDtXU1Ki+vl6VlZUqKyuLapeXlxdznE08Zqb77rtP69at\n09tvv91i23vuuUfTpk0L9+YcPXo05llUFRUV2rx5c9RP83AjSWPHjtWrr76qjz76SB999JFeffVV\njR07NqrdBx98IEn6/PPP9eMf/1hTpkyRJP35z3/WJ598Ikl67bXXlJaWpgEDBkjyTm56//33lZOT\n0+r90RYEHABApzNnzhxt2rRJBQUFuvvuu2OeBv3II49o4cKFys/PjzvYNy0tTY899pjGjh2rvLw8\nTZgwQQMHDoxqN378+CY9Iq2RkZGhu+66S/PmzQtPixyD0zhuaOrUqbryyitVXFysQYMGaeTIkTrj\njPZ9vZ9//vn64Q9/qOLiYhUXF+vee+/V+eefL0n6zne+Ex4wvGzZMl188cXq37+/evfurW9/+9uS\nvOBz6aWXKi8vTz/96U/1zDPPhJe9adMmDRs2TGlpyT2IZN4ZWKePoqIi17hjAQCnh23btikvLy/V\nZaTU5Zdfrpdeekk9evRIdSkpNWPGDJWVlWnMmDFR82K9T8xsk3Mu+lheAvTgAABwEjz00EN69913\nU11Gyg0aNChmuOloDDIGAOAkGDp0aKpLOCV897vfPSnroQcHAAAEDgEHAAAEDgEHAAAEDgEHAAAE\nDgEHANApLFiwQHl5eZo0aVLcNkuWLNH06dNjzuvWrVvM6VVVVcrNzVUoFNIDDzwQd9l33nmnXn/9\ndUnSqFGjlJubq8GDB2vEiBHavn171PTi4uImt2rIyclRfn5+zHtIPfjgg+rfv7+GDBmi4uLimBf6\nO1GlpaXq0aOHrr322rht6urqdNNNNykUCmno0KHavXt3eN7999+vUCik3NxcvfLKK5Kk+vp6lZSU\nqKGhod31JULAAQB0Co8//rhee+21uFclbovjx49r2rRpevnll1VdXa1ly5apuro6ql1tba3WrVsX\nvvO25F0d+c0339TkyZOb3COqcfptt90Wde+o1atXR12BePHixXrttde0fv16bd68WatWrVJHXOOu\noqKiyQX6YnnyySd13nnnaefOnZo5c2b4fl3V1dWqrKzU1q1bVVVVpdtuu03Hjx9Xenq6xowZo2ef\nfbbd9SVCwAEAnFTvf/K+dh/a3aE/73/yfovrnDJlinbt2qVx48Zp/vz5OnjwoMrLy1VQUKBhw4Zp\ny5YtUc+pqanR8OHDlZ+fr1mzZsVc7vr16xUKhdSvXz+lp6dr4sSJ4btrR1q+fLlKS0tjLqOkpCTm\nbRyGDx8e9wrKkebOnatFixaFbzXRvXt3TZ48OeHzEhkzZozOOeecFtusWLEivK4bbrghHK5WrFih\niRMn6qyzzlLfvn0VCoW0fv16SVJ5eXmHhsx4CDgAgMBbvHixevfurdWrV2vmzJmaPXu2LrnkEm3Z\nskVz584N3/Yg0owZMzR16lS99dZbuuCCC2Iud9++ferTp0/4cXZ2dsxQsnbtWhUWFsZcxosvvqj8\n/Pyo6VVVVSovL28yLfJWDfPnz9fhw4d15MiRhDfalLybbTY+N/In8lDXiYrc/rS0NJ177rmqra1t\ncb8MGjRIGzZsaPM6W4sL/QEATqqvnP2VVJegN954Q8uXL5ckjR49WrW1teGbVTZau3ZtuM0tt9wS\nPvzSFvv371evXr2aTJs0aZIyMjKUk5OjRx99tMn0+vp6HT16tMkYHMk7RJWZmRl+3LzmllRUVEQd\n8kqFLl26KD09XUeOHEnYQ9QeBBwAAOIwsxbnZ2Vlac+ePeHHe/fuVVZWVlS7jIwMHTt2rMm0pUuX\nqqgo+hZLS5cuVWFhoSoqKnT77bfrhRdeiLv+7t27q1u3btq1a1fCXpx58+bFPDRUUlIS847irdG4\n/dnZ2WpoaNChQ4fUs2fPhPulrq5OXbt2bdM6W4tDVACATmfkyJHhL/s1a9YoMzMzPIal0YgRI1RZ\nWSlJcceMFBcXa8eOHaqpqVF9fb0qKytVVlYW1S4vLy/mOJt4zEz33Xef1q1bp7fffrvFtvfcc4+m\nTZsW7s05evRozLOoKioqwgOUI3/aGm4kqaysLHwn9ueff16jR4+WmamsrEyVlZWqq6tTTU2NduzY\nocsuu0ySN+A6MzNTZ555ZpvX2xoEHABApzNnzhxt2rRJBQUFuvvuu8Nf0pEeeeQRLVy4UPn5+XEH\n+6alpemxxx7T2LFjlZeXpwkTJmjgwIFR7caPH681a9acUI0ZGRm66667NG/evPC0yDE4jeOGpk6d\nqiuvvFLFxcUaNGiQRo4cqTPOaP/X+8iRI3XjjTdq1apVys7ODp/qfe+992rlypWSpFtvvVW1tbUK\nhUJ6+OGHw6fJDxw4UBMmTNCAAQNUWlqqhQsXqkuXLpK8w2zjx49vd32JWEecSnYyFRUVuY0bN6a6\nDADACdi2bZvy8vJSXUZKXX755XrppZfUo0ePVJeSUtdff70eeOABXXzxxVHzYr1PzGyTcy76WF4C\n9OAAAHASPPTQQ3r33XdTXUZK1dfXq7y8PGa46WgMMgYA4CQYOnRoqktIufT09Jin5CcDPTgAACBw\nCDgAACBwCDgAACBwCDgAACBwCDgAgE5hwYIFysvL06RJk+K2WbJkiaZPnx5zXrdu3WJOr6qqUm5u\nrkKhUPg6MLHceeedev311yVJo0aNUm5urgYPHqwRI0Zo+/btUdOLi4ub3KohJydH+fn5Me8h9eCD\nD6p///4aMmSIiouLY17o70SVlpaqR48euvbaa+O2qaur00033aRQKKShQ4dq9+7d4Xn333+/QqGQ\ncnNzw9fQqa+vV0lJiRoaGtpdXyIEHABAp/D444/rtdde69A7WR8/flzTpk3Tyy+/rOrqai1btkzV\n1dVR7Wpra7Vu3TqVlJSEpy1dulRvvvmmJk+e3OQeUY3Tb7vttqh7R61evTrqCsSLFy/Wa6+9pvXr\n12vz5s3hO3q3V0VFhZ555pkW2zz55JM677zztHPnTs2cOTN8v67q6mpVVlZq69atqqqq0m233abj\nx48rPT1dY8aM0bPPPtvu+hIh4AAATqrP9u9XXU1Nh/58tn9/i+ucMmWKdu3apXHjxmn+/Pk6ePCg\nysvLVVBQoGHDhmnLli1Rz6mpqdHw4cOVn5+vWbNmxVzu+vXrFQqF1K9fP6Wnp2vixIlasWJFVLvl\ny5ertLQ05jJKSkpi3sZh+PDhca+gHGnu3LlatGhR+FYT3bt31+TJkxM+L5ExY8YkvBnmihUrwuu6\n4YYbwuFqxYoVmjhxos466yz17dtXoVBI69evlySVl5d3aMiMh4ADAAi8xYsXq3fv3lq9erVmzpyp\n2bNn65JLLtGWLVs0d+7cmNdmmTFjhqZOnaq33npLF1xwQczl7tu3T3369Ak/zs7OjhlK1q5dq8LC\nwpjLePHFF5Wfnx81vaqqSuXl5U2mRd6qYf78+Tp8+LCOHDmS8EabknezzcbnRv5EHuo6UZHbn5aW\npnPPPVe1tbUt7pdBgwZpw4YNbV5na3GhPwDASXVmnLBwMr3xxhtavny5JGn06NGqra0N36yy0dq1\na8NtbrnllvDhl7bYv3+/evXq1WTapEmTlJGRoZycHD366KNNptfX1+vo0aNNxuBI3iGqzMzM8OPm\nNbekoqIi6pBXKnTp0kXp6ek6cuRIwh6i9iDgAAAQh5m1OD8rK0t79uwJP967d6+ysrKi2mVkZOjY\nsWNNpi1dulRFRdG3WFq6dKkKCwtVUVGh22+/XS+88ELc9Xfv3l3dunXTrl27EvbizJs3L+ahoZKS\nkjbfUbxx+7Ozs9XQ0KBDhw6pZ8+eCfdLXV2dunbt2qZ1thaHqAAAnc7IkSPDX/Zr1qxRZmZmeAxL\noxEjRqiyslKS4o4ZKS4u1o4dO1RTU6P6+npVVlaqrKwsql1eXl7McTbxmJnuu+8+rVu3Tm+//XaL\nbe+55x5NmzYt3Jtz9OjRmGdRVVRUhAcoR/60NdxIUllZWfhO7M8//7xGjx4tM1NZWZkqKytVV1en\nmpoa7dixQ5dddpkkb8B1ZmamzjzzzDavtzUIOACATmfOnDnatGmTCgoKdPfdd4e/pCM98sgjWrhw\nofLz8+MO9k1LS9Njjz2msWPHKi8vTxMmTNDAgQOj2o0fP15r1qw5oRozMjJ01113ad68eeFpkWNw\nGscNTZ06VVdeeaWKi4s1aNAgjRw5Umec0f6v95EjR+rGG2/UqlWrlJ2dHT7V+95779XKlSslSbfe\neqtqa2sVCoX08MMPh0+THzhwoCZMmKABAwaotLRUCxcuVJcuXSR5h9nGjx/f7voSsY44lSzuws1K\nJT0iqYukf3bOPdBs/t9K+o6kBkkHJP2Nc+6PLS2zqKjIbdy4MUkVAwCSYdu2bcrLy0t1GSl1+eWX\n66WXXlKPHj1SXUpKXX/99XrggQdi3lE81vvEzDY556KP5SWQtB4cM+siaaGkcZIGSLrZzAY0a/Y/\nkoqccwWSnpf0s2TVAwBAKj300EN69913U11GStXX16u8vDxmuOloyRxkfJmknc65XZJkZpWSvi4p\nfAUk59zqiPbrJH0jifUAAJAyQ4cOTXUJKZeenh7zlPxkSOYYnCxJeyIe7/WnxXOrpJdjzTCz75nZ\nRjPbeODAgQ4sEQAABNEpMcjYzL4hqUjSvFjznXP/6Jwrcs4VNb+OAAAAQHPJPES1T1KfiMfZ/rQm\nzOwqSX8n6QrnXF0S6wEAAJ1EMntwNki6yMz6mlm6pImSVkY2MLNLJD0hqcw590ESawEAAJ1I0gKO\nc65B0nRJr0jaJuk559xWM/uRmTVeBWmepG6SfmVmm81sZZzFAQDQLgsWLFBeXp4mTZoUt82SJUs0\nffr0mPO6desWc3pVVZVyc3MVCoXC14GJ5c4779Trr78uSRo1apRyc3M1ePBgjRgxQtu3b4+aXlxc\n3ORWDTk5OcrPz495D6kHH3xQ/fv315AhQ1RcXBzzQn8nqrS0VD169NC1114bt01dXZ1uuukmhUIh\nDR06VLt37w7Pu//++xUKhZSbmxu+hk59fb1KSkrU0NDQ7voScs6dVj+FhYUOAHB6qa6uTnUJLjc3\n1+3Zs6fFNj//+c/dtGnTYs47++yzo6Y1NDS4fv36uXfeecfV1dW5goICt3Xr1qh2H374oRs6dGj4\n8RVXXOE2bNjgnHPuiSeecNddd13U9KeeespdddVV4edceOGF7sCBA1HLXrRokbvmmmvcoUOHnHPO\nHTp0yC1ZsqTF7WyN3/72t27lypVu/PjxcdssXLjQff/733fOObds2TI3YcIE55xzW7dudQUFBe7Y\nsWNu165drl+/fq6hocE559ycOXPcL3/5y5jLi/U+kbTRtSEvnBKDjAEAnceRg8f08Z/+3KE/Rw4e\na3GdU6ZM0a5duzRu3DjNnz9fBw8eVHl5uQoKCjRs2DBt2bIl6jk1NTUaPny48vPzNWvWrJjLXb9+\nvUKhkPr166f09HRNnDhRK1asiGq3fPlylZaWxlxGSUlJzNs4DB8+PO4VlCPNnTtXixYtCt9qonv3\n7po8eXLC5yUyZsyYhDfDXLFiRXhdN9xwg1atWiXnnFasWKGJEyfqrLPOUt++fRUKhbR+/XpJUnl5\nedxbX3QkAg4AIPAWL16s3r17a/Xq1Zo5c6Zmz56tSy65RFu2bNHcuXNjXptlxowZmjp1qt566y1d\nEOcO6Pv27VOfPl+cT5OdnR0zlKxdu1aFhYUxl/Hiiy8qPz8/anpVVZXKy8ubTIu8VcP8+fN1+PBh\nHTlyJOGNNiXvZpuNz438iTzUdaIitz8tLU3nnnuuamtrW9wvgwYN0oYNG9q8ztbibuIAgJPqnPOT\nexfp1njjjTe0fPlySdLo0aNVW1sbvlllo7Vr14bb3HLLLfrBD37Q5vXt379fzS9zMmnSJGVkZCgn\nJ0ePPvpok+n19fU6evRokzE4kncfp8zMzPDj5jW3pKKiQhUVFW3cgo7TpUsXpaen68iRIwl7iNqD\ngAMAQBxm1uL8rKws7dnzxTVt9+7dq6ys6GvaZmRk6NixpofRli5dqqKi6FssLV26VIWFhaqoqNDt\nt9+uF154Ie76u3fvrm7dumnXrl0Je3HmzZsX89BQSUlJm+8o3rj92dnZamho0KFDh9SzZ8+E+6Wu\nrk5duyY36HKICgDQ6YwcOTL8Zb9mzRplZmaGx7A0GjFihCorKyUp7piR4uJi7dixQzU1Naqvr1dl\nZaXKysqi2uXl5cUcZxOPmem+++7TunXr9Pbbb7fY9p577tG0adPCvTlHjx6NeRZVRUWFNm/eHPXT\n1nAjSWVlZeE7sT///PMaPXq0zExlZWWqrKxUXV2dampqtGPHDl122WWSpNraWmVmZurMM89s83pb\ng4ADAOh05syZo02bNqmgoEB33313+Es60iOPPKKFCxcqPz8/7mDftLQ0PfbYYxo7dqzy8vI0YcIE\nDRw4MKrd+PHjtWbNmhOqMSMjQ3fddZfmzfviIv+RY3Aaxw1NnTpVV155pYqLizVo0CCNHDlSZ5zR\n/q/3kSNH6sYbb9SqVauUnZ0dPtX73nvv1cqV3lVdbr31VtXW1ioUCunhhx8OnyY/cOBATZgwQQMG\nDFBpaakWLlyoLl26SPIOs40fP77d9SVi3hlYp4+ioiK3cePGVJcBADgB27ZtU15eXqrLSKnLL79c\nL730knr06JHqUlLq+uuv1wMPPBDzjuKx3idmtsk5F30sLwF6cAAAOAkeeughvfvuu6kuI6Xq6+tV\nXl4eM9x0NAYZAwBwEgwdOjTVJaRcenp6zFPyk4EeHAAAEDgEHAAAEDgEHAAAEDgEHAAAEDgEHABA\np7BgwQLl5eVp0qRJcdssWbJE06dPjzmvW7duMadXVVUpNzdXoVAofB2YWO688069/vrrkqRRo0Yp\nNzdXgwcP1ogRI7R9+/ao6cXFxU1u1ZCTk6P8/PyY95B68MEH1b9/fw0ZMkTFxcUxL/R3op5++mld\ndNFFuuiii2JeJ0iS3nzzzfANSa+77rrwxQZ3796tjIyMcK1TpkwJP+eqq67SRx991O76EmrLLchT\n+VNYWBj3tu0AgFNTdXV1qktwubm5bs+ePS22+fnPf+6mTZsWc97ZZ58dNa2hocH169fPvfPOO66u\nrs4VFBS4rVu3RrX78MMP3dChQ8OPr7jiCrdhwwbnnHNPPPGEu+6666KmP/XUU+6qq64KP+fCCy90\nBw4ciFr2okWL3DXX6mAw4QAAIABJREFUXOMOHTrknHPu0KFDbsmSJS1uZyK1tbWub9++rra21h08\neND9v/buP6jJLN0T+PcIRrLFILZxtpS4F+3cxghBvRCRRTIK2yMObiblKtLFeJlZZ+4K6CjrZkdr\nvequfdEtVMofKDtbTllrscYdsQZ1V7pZL6wjNQxKjeKI2niJ5Y92arpjj0L1hVyYs38E3grmDeFn\nQsP3U5UqcnLyvk94sfP0Oec9z4IFC+Tr1699+iUnJ8v6+noppZRnz56Ve/fulVJK6XQ6ZXx8vOqx\nz507Jz/++GPV19T+TgDckSPIFziCQ0REQfX2yy/w+vOXY/p4++UXg55z69ataG9vx9q1a1FWVobX\nr1/DZrMhMTERK1asQEtLi897nE6nMjqxd+9e1eM2NTXBYDBg4cKF0Gg0yM3NRXV1tU+/qqoqZGVl\nqR7DYrGolnFITU31u4Oyt5KSEpw5c0YpNREVFYX8/PyA7xvMJ598gg8//BDvvfceZs2ahQ8//BA1\nNTU+/T777DNYLBYAwIcffqgUJx2M1WrFhQsXRhXfUDDBISKiSa+iogLz5s1DXV0diouLsX//fixb\ntgwtLS0oKSlR3Ztlx44dKCgowP379zF37lzV4758+RLz589Xnuv1etWkpKGhAUlJSarHuHr1Kkwm\nk097TU0NbDbbgDbvUg1lZWV4+/YtOjo6AhbaBDzFNvvf6/3wnuoa7ueKj49XErpf/vKXAwpsOp1O\nLFu2DN/5znfw61//WmmfNWsWuru74XK5AsY8Gtzoj4iIgipKNyfUIeDWrVvKaENGRgZcLpeyfqRf\nQ0OD0mfz5s342c9+NuLzvXr1CnPmDPzceXl50Gq1iI2NxcmTJwe0u91udHZ2DliDA3jqOOl0OuX5\nuzEPxm63w263j/ATqPvFL36Bn/70pzh48CCsVis0Gg0AYO7cuXj27Blmz56N5uZm2Gw2PHjwQBll\n+va3v43PP/8cs2fPHtN4vHEEh4iIyA8hxKCvx8TEDBi1ePHiBWJiYnz6abVadHV1DWirrKzE3bt3\n8atf/WrAaEllZSXa29uRn5+P7du3D3r+qKgoREZGor29PeBnGc4IzlA/16JFi/Dpp5+iubkZH330\nEd5//30AwIwZM5TkJSkpCe+//z4+++wz5X1dXV3QarUBYx4NJjhERDTlpKeno7KyEgBQX18PnU6n\njC70S0tLg8PhAACl77vMZjPa2trgdDrhdrvhcDhgtVp9+hmNRtV1Nv4IIXDw4EE0Njbi0aNHg/bd\ns2cPioqKlNGczs5O1buo7HY77t696/M4ceKET981a9bg008/xVdffYWvvvoKn376KdasWePT749/\n/CMA4M9//jM+/vhj5W6pL774Ar29vQCA9vZ2tLW1KdNoUkr84Q9/QGxs7JB/HyPBBIeIiKacAwcO\noLm5GYmJidi9e7fqbdDHjx9HeXk5TCaT38W+4eHhOHXqFNasWQOj0YicnBzEx8f79MvOzkZ9ff2w\nYtRqtdi1axdKS0uVNu81OP3rhgoKCrB69WqYzWYkJCQgPT0d06aN7uv9vffew9/+7d/CbDbDbDZj\n3759eO+99wAAP/7xj3Hnzh0AwIULF/DBBx9g0aJFmDdvHn70ox8BAG7evInExEQsXboUGzZsQEVF\nhfL+5uZmrFixAuHh47tKRnjuwPrmSE5Olv2/WCIi+mZ4+PAhjEZjqMMIqZUrV+LatWuIjo4OdSgh\ntWPHDlitVmRmZvq8pvZ3IoRollImD/c8HMEhIiIKgqNHj+LZs2ehDiPkEhISVJObsca7qIiIiIIg\nJSUl1CFMCD/5yU+Cch6O4BAREdGkwwSHiIiIJh0mOERERDTpMMEhIiKiSYcJDhERTQknTpyA0WhE\nXl6e3z7nzp3Dtm3bVF+LjIxUba+pqUFcXBwMBgMOHz7s99g7d+7EzZs3AQCrVq1CXFwclixZgrS0\nNDx+/Nin3Ww2DyjVEBsbC5PJpLoD8ZEjR7Bo0SIsXboUZrNZdaO/4crKykJ0dDTWrVvnt093dzc2\nbdoEg8GAlJQUPH36VHnt0KFDMBgMiIuLwyeffAIAcLvdsFgs6OnpGXV8gTDBISKiKeH06dOora31\nuyvxSPT29qKoqAjXr19Ha2srLly4gNbWVp9+LpcLjY2NSuVtwLM78r1795Cfnz+gRlR/e2FhoU/t\nqLq6Op8diCsqKlBbW4umpibcvXsXN27cwFjscWe323H+/PlB+5w9exazZs3CkydPUFxcrNTram1t\nhcPhwIMHD1BTU4PCwkL09vZCo9EgMzMTFy9eHHV8gTDBISKioOr5Uzf+6Yuvx/TR86fuQc+5detW\ntLe3Y+3atSgrK8Pr169hs9mQmJiIFStWoKWlxec9TqcTqampMJlM2Lt3r+pxm5qaYDAYsHDhQmg0\nGuTm5irVtb1VVVUhKytL9RgWi0W1jENqaqrfHZS9lZSU4MyZM0qpiaioKOTn5wd8XyCZmZn41re+\nNWif6upq5VwbNmxQkqvq6mrk5uZixowZWLBgAQwGA5qamgAANpttTJNMf5jgEBHRpFdRUYF58+ah\nrq4OxcXF2L9/P5YtW4aWlhaUlJQoZQ+87dixAwUFBbh//z7mzp2retyXL18OKJSp1+tVk5KGhgYk\nJSWpHuPq1aswmUw+7TU1NbDZbAPavEs1lJWV4e3bt+jo6FDqPA1mOMU2h8r784eHh2PmzJlwuVyD\n/l4SEhJw+/btEZ9zqLjRHxERBVV49IxQh4Bbt26hqqoKAJCRkQGXy6UUq+zX0NCg9Nm8ebMy/TIS\nr169wpw5cwa05eXlQavVIjY2FidPnhzQ7na70dnZOWANDuCZotLpdMrzd2MejN1u95nyCoWwsDBo\nNBp0dHQEHCEaDSY4REREfgghBn09JiYGz58/V56/ePECMTExPv20Wi26uroGtFVWViI52bfEUmVl\nJZKSkmC327F9+3ZcvnzZ7/mjoqIQGRmJ9vb2gKM4paWlqlNDFotFtaL4UPR/fr1ej56eHrx58waz\nZ88O+Hvp7u5GRETEiM45VJyiIiKiKSc9PV35sq+vr4dOp1PWsPRLS0uDw+EAAL9rRsxmM9ra2uB0\nOuF2u+FwOGC1Wn36GY1G1XU2/gghcPDgQTQ2NuLRo0eD9t2zZw+KioqU0ZzOzk7Vu6jsdruyQNn7\nMdLkBgCsVqtSif3SpUvIyMiAEAJWqxUOhwPd3d1wOp1oa2vD8uXLAXgWXOt0OkyfPn3E5x0KJjhE\nRDTlHDhwAM3NzUhMTMTu3buVL2lvx48fR3l5OUwmk9/FvuHh4Th16hTWrFkDo9GInJwcxMfH+/TL\nzs5GfX39sGLUarXYtWsXSktLlTbvNTj964YKCgqwevVqmM1mJCQkID09HdOmjf7rPT09HRs3bsSN\nGzeg1+uVW7337duHK1euAAC2bNkCl8sFg8GAY8eOKbfJx8fHIycnB4sXL0ZWVhbKy8sRFhYGwDPN\nlp2dPer4AhFjcStZMCUnJ8s7d+6EOgwiIhqGhw8fwmg0hjqMkFq5ciWuXbuG6OjoUIcSUuvXr8fh\nw4fxwQcf+Lym9ncihGiWUvrO5QXAERwiIqIgOHr0KJ49exbqMELK7XbDZrOpJjdjjYuMiYiIgiAl\nJSXUIYScRqNRvSV/PHAEh4iIiCYdJjhEREQ06TDBISIiokmHCQ4RERFNOkxwiIhoSjhx4gSMRiPy\n8vL89jl37hy2bdum+lpkZKRqe01NDeLi4mAwGJR9YNTs3LkTN2/eBACsWrUKcXFxWLJkCdLS0vD4\n8WOfdrPZPKBUQ2xsLEwmk2oNqSNHjmDRokVYunQpzGaz6kZ/w5WVlYXo6GisW7fOb5/u7m5s2rQJ\nBoMBKSkpePr0qfLaoUOHYDAYEBcXp+yh43a7YbFY0NPTM+r4AmGCQ0REU8Lp06dRW1s7ppWse3t7\nUVRUhOvXr6O1tRUXLlxAa2urTz+Xy4XGxkZYLBalrbKyEvfu3UN+fv6AGlH97YWFhT61o+rq6nx2\nIK6oqEBtbS2amppw9+5dpaL3aNntdpw/f37QPmfPnsWsWbPw5MkTFBcXK/W6Wltb4XA48ODBA9TU\n1KCwsBC9vb3QaDTIzMzExYsXRx1fIExwiIgoqN68eYMvv/xyTB9v3rwZ9Jxbt25Fe3s71q5di7Ky\nMrx+/Ro2mw2JiYlYsWIFWlpafN7jdDqRmpoKk8mEvXv3qh63qakJBoMBCxcuhEajQW5uLqqrq336\nVVVVISsrS/UYFotFtYxDamqq3x2UvZWUlODMmTNKqYmoqCjk5+cHfF8gmZmZAYthVldXK+fasGGD\nklxVV1cjNzcXM2bMwIIFC2AwGNDU1AQAsNlsY5pk+sMEh4iIJr2KigrMmzcPdXV1KC4uxv79+7Fs\n2TK0tLSgpKREdW+WHTt2oKCgAPfv38fcuXNVj/vy5UvMnz9fea7X61WTkoaGBiQlJake4+rVqzCZ\nTD7tNTU1sNlsA9q8SzWUlZXh7du36OjoCFhoE/AU2+x/r/fDe6pruLw/f3h4OGbOnAmXyzXo7yUh\nIQG3b98e8TmHihv9ERFRUM2cOTPUIeDWrVuoqqoCAGRkZMDlcinFKvs1NDQofTZv3qxMv4zEq1ev\nMGfOnAFteXl50Gq1iI2NxcmTJwe0u91udHZ2DliDA3imqHQ6nfL83ZgHY7fbfaa8QiEsLAwajQYd\nHR0BR4hGgwkOERGRH0KIQV+PiYnB8+fPlecvXrxATEyMTz+tVouurq4BbZWVlUhO9i2xVFlZiaSk\nJNjtdmzfvh2XL1/2e/6oqChERkaivb094ChOaWmp6tSQxWIZcUXx/s+v1+vR09ODN2/eYPbs2QF/\nL93d3YiIiBjROYeKU1RERDTlpKenK1/29fX10Ol0yhqWfmlpaXA4HADgd82I2WxGW1sbnE4n3G43\nHA4HrFarTz+j0ai6zsYfIQQOHjyIxsZGPHr0aNC+e/bsQVFRkTKa09nZqXoXld1uVxYoez9GmtwA\ngNVqVSqxX7p0CRkZGRBCwGq1wuFwoLu7G06nE21tbVi+fDkAz4JrnU6H6dOnj/i8Q8EEh4iIppwD\nBw6gubkZiYmJ2L17t/Il7e348eMoLy+HyWTyu9g3PDwcp06dwpo1a2A0GpGTk4P4+HifftnZ2aiv\nrx9WjFqtFrt27UJpaanS5r0Gp3/dUEFBAVavXg2z2YyEhASkp6dj2rTRf72np6dj48aNuHHjBvR6\nvXKr9759+3DlyhUAwJYtW+ByuWAwGHDs2DHlNvn4+Hjk5ORg8eLFyMrKQnl5OcLCwgB4ptmys7NH\nHV8gYixuJQum5ORkeefOnVCHQUREw/Dw4UMYjcZQhxFSK1euxLVr1xAdHR3qUEJq/fr1OHz4sGpF\ncbW/EyFEs5TSdy4vAI7gEBERBcHRo0fx7NmzUIcRUm63GzabTTW5GWtcZExERBQEKSkpoQ4h5DQa\njeot+eOBIzhEREQ06TDBISIiokmHCQ4RERFNOkxwiIiIaNJhgkNERFPCiRMnYDQakZeX57fPuXPn\nsG3bNtXXIiMjVdtramoQFxcHg8Gg7AOjZufOnbh58yYAYNWqVYiLi8OSJUuQlpaGx48f+7SbzeYB\npRpiY2NhMplUa0gdOXIEixYtwtKlS2E2m1U3+huurKwsREdHY926dX77dHd3Y9OmTTAYDEhJScHT\np0+V1w4dOgSDwYC4uDhlDx232w2LxYKenp5RxxcIExwiIpoSTp8+jdra2jGtZN3b24uioiJcv34d\nra2tuHDhAlpbW336uVwuNDY2wmKxKG2VlZW4d+8e8vPzB9SI6m8vLCz0qR1VV1fnswNxRUUFamtr\n0dTUhLt37yoVvUfLbrfj/Pnzg/Y5e/YsZs2ahSdPnqC4uFip19Xa2gqHw4EHDx6gpqYGhYWF6O3t\nhUajQWZmJi5evDjq+AJhgkNEREHV1fU5vv7aOaaPrq7PBz3n1q1b0d7ejrVr16KsrAyvX7+GzWZD\nYmIiVqxYgZaWFp/3OJ1OpKamwmQyYe/evarHbWpqgsFgwMKFC6HRaJCbm4vq6mqfflVVVcjKylI9\nhsViUS3jkJqa6ncHZW8lJSU4c+aMUmoiKioK+fn5Ad8XSGZmZsBimNXV1cq5NmzYoCRX1dXVyM3N\nxYwZM7BgwQIYDAY0NTUBAGw225gmmf4wwSEiokmvoqIC8+bNQ11dHYqLi7F//34sW7YMLS0tKCkp\nUd2bZceOHSgoKMD9+/cxd+5c1eO+fPkS8+fPV57r9XrVpKShoQFJSUmqx7h69SpMJpNPe01NDWw2\n24A271INZWVlePv2LTo6OgIW2gQ8xTb73+v98J7qGi7vzx8eHo6ZM2fC5XIN+ntJSEjA7du3R3zO\noeJGf0REFFQREfNCHQJu3bqFqqoqAEBGRgZcLpdSrLJfQ0OD0mfz5s3K9MtIvHr1CnPmzBnQlpeX\nB61Wi9jYWJw8eXJAu9vtRmdn54A1OIBnikqn0ynP3415MHa73WfKKxTCwsKg0WjQ0dERcIRoNJjg\nEBER+SGEGPT1mJgYPH/+XHn+4sULxMTE+PTTarXo6uoa0FZZWYnkZN8SS5WVlUhKSoLdbsf27dtx\n+fJlv+ePiopCZGQk2tvbA47ilJaWqk4NWSyWEVcU7//8er0ePT09ePPmDWbPnh3w99Ld3Y2IiIgR\nnXOoOEVFRERTTnp6uvJlX19fD51Op6xh6ZeWlgaHwwEAfteMmM1mtLW1wel0wu12w+FwwGq1+vQz\nGo2q62z8EULg4MGDaGxsxKNHjwbtu2fPHhQVFSmjOZ2dnap3UdntdmWBsvdjpMkNAFitVqUS+6VL\nl5CRkQEhBKxWKxwOB7q7u+F0OtHW1obly5cD8Cy41ul0mD59+ojPOxRMcIiIaMo5cOAAmpubkZiY\niN27dytf0t6OHz+O8vJymEwmv4t9w8PDcerUKaxZswZGoxE5OTmIj4/36ZednY36+vphxajVarFr\n1y6UlpYqbd5rcPrXDRUUFGD16tUwm81ISEhAeno6pk0b/dd7eno6Nm7ciBs3bkCv1yu3eu/btw9X\nrlwBAGzZsgUulwsGgwHHjh1TbpOPj49HTk4OFi9ejKysLJSXlyMsLAyAZ5otOzt71PEFIsbiVrJg\nSk5Olnfu3Al1GERENAwPHz6E0WgMdRghtXLlSly7dg3R0dGhDiWk1q9fj8OHD6tWFFf7OxFCNEsp\nfefyAuAIDhERURAcPXoUz549C3UYIeV2u2Gz2VSTm7HGRcZERERBkJKSEuoQQk6j0ajekj8eOIJD\nREREkw4THCIiIpp0mOAQERHRpMMEh4iIiCYdJjhERDQlnDhxAkajEXl5eX77nDt3Dtu2bVN9LTIy\nUrW9pqYGcXFxMBgMyj4wanbu3ImbN28CAFatWoW4uDgsWbIEaWlpePz4sU+72WweUKohNjYWJpNJ\ntYbUkSNHsGjRIixduhRms1l1o7/hysrKQnR0NNatW+e3T3d3NzZt2gSDwYCUlBQ8ffpUee3QoUMw\nGAyIi4tT9tBxu92wWCzo6ekZdXyBMMEhIqIp4fTp06itrR3TSta9vb0oKirC9evX0draigsXLqC1\ntdWnn8vlQmNjIywWi9JWWVmJe/fuIT8/f0CNqP72wsJCn9pRdXV1PjsQV1RUoLa2Fk1NTbh7965S\n0Xu07HY7zp8/P2ifs2fPYtasWXjy5AmKi4uVel2tra1wOBx48OABampqUFhYiN7eXmg0GmRmZuLi\nxYujji8QJjhERBRUL7vc+Ievu8b08bLLPeg5t27divb2dqxduxZlZWV4/fo1bDYbEhMTsWLFCrS0\ntPi8x+l0IjU1FSaTCXv37lU9blNTEwwGAxYuXAiNRoPc3FxUV1f79KuqqkJWVpbqMSwWi2oZh9TU\nVL87KHsrKSnBmTNnlFITUVFRyM/PD/i+QDIzMwMWw6yurlbOtWHDBiW5qq6uRm5uLmbMmIEFCxbA\nYDCgqakJAGCz2cY0yfSHCQ4REU16FRUVmDdvHurq6lBcXIz9+/dj2bJlaGlpQUlJiereLDt27EBB\nQQHu37+PuXPnqh735cuXmD9/vvJcr9erJiUNDQ1ISkpSPcbVq1dhMpl82mtqamCz2Qa0eZdqKCsr\nw9u3b9HR0RGw0CbgKbbZ/17vh/dU13B5f/7w8HDMnDkTLpdr0N9LQkICbt++PeJzDhU3+iMioqCK\nidCEOgTcunULVVVVAICMjAy4XC6lWGW/hoYGpc/mzZuV6ZeRePXqFebMmTOgLS8vD1qtFrGxsTh5\n8uSAdrfbjc7OzgFrcADPFJVOp1OevxvzYOx2u8+UVyiEhYVBo9Ggo6Mj4AjRaDDBISIi8kMIMejr\nMTExeP78ufL8xYsXiImJ8emn1WrR1dU1oK2yshLJyb4lliorK5GUlAS73Y7t27fj8uXLfs8fFRWF\nyMhItLe3BxzFKS0tVZ0aslgsI64o3v/59Xo9enp68ObNG8yePTvg76W7uxsREREjOudQcYqKiIim\nnPT0dOXLvr6+HjqdTlnD0i8tLQ0OhwMA/K4ZMZvNaGtrg9PphNvthsPhgNVq9elnNBpV19n4I4TA\nwYMH0djYiEePHg3ad8+ePSgqKlJGczo7O1XvorLb7coCZe/HSJMbALBarUol9kuXLiEjIwNCCFit\nVjgcDnR3d8PpdKKtrQ3Lly8H4FlwrdPpMH369BGfdyiY4BAR0ZRz4MABNDc3IzExEbt371a+pL0d\nP34c5eXlMJlMfhf7hoeH49SpU1izZg2MRiNycnIQHx/v0y87Oxv19fXDilGr1WLXrl0oLS1V2rzX\n4PSvGyooKMDq1athNpuRkJCA9PR0TJs2+q/39PR0bNy4ETdu3IBer1du9d63bx+uXLkCANiyZQtc\nLhcMBgOOHTum3CYfHx+PnJwcLF68GFlZWSgvL0dYWBgAzzRbdnb2qOMLRIzFrWTBlJycLO/cuRPq\nMIiIaBgePnwIo9EY6jBCauXKlbh27Rqio6NDHUpIrV+/HocPH1atKK72dyKEaJZS+s7lBcARHCIi\noiA4evQonj17FuowQsrtdsNms6kmN2ONi4yJiIiCICUlJdQhhJxGo1G9JX88cASHiIiC4pu2JIKC\na6z/PpjgEBHRuIuIiIDL5WKSQ6qklHC5XGN66zinqIiIaNzp9Xq8ePECX3zxRahDoQkqIiICer1+\nzI7HBIeIiMbd9OnTsWDBglCHQVPIuE5RCSGyhBCPhRBPhBC7VV6fIYS42Pf6b4UQseMZDxEREU0N\n45bgCCHCAJQDWAtgMYCPhBCL3+m2BcBXUkoDgDIA/3W84iEiIqKpYzxHcJYDeCKlbJdSugE4AHz/\nnT7fB9C/feQlAJkiUOEPIiIiogDGcw1ODIDnXs9fAHh3EwClj5SyRwjxBsBsAF96dxJC/A2Av+l7\n2i2E+P24REyjocM7140mBF6XiYnXZWLidZmY4kbypm/EImMp5c8B/BwAhBB3RrJlM40vXpeJiddl\nYuJ1mZh4XSYmIcSI6jON5xTVSwDzvZ7r+9pU+wghwgHMBOAax5iIiIhoChjPBOc2gL8UQiwQQmgA\n5AK48k6fKwDy+37eAODvJXeBIiIiolEatymqvjU12wB8AiAMwC+klA+EEP8FwB0p5RUAZwGcF0I8\nAfAaniQokJ+PV8w0KrwuExOvy8TE6zIx8bpMTCO6LoIDJkRERDTZsBYVERERTTpMcIiIiGjSmbAJ\nDss8TExDuC7/XgjRKoRoEULcEEL8RSjinGoCXRevfv9GCCGFELwVNgiGcl2EEDl9/2YeCCH+Z7Bj\nnGqG8N+wfyGEqBNC/K7vv2PfC0WcU40Q4hdCiD/62+dOeJzou24tQoi/CnhQKeWEe8CzKPkfACwE\noAFwD8Did/oUAqjo+zkXwMVQxz3ZH0O8LqsB/LO+nwt4XSbGdenr9y0ANwE0AkgOddyT/THEfy9/\nCeB3AGb1Pf92qOOezI8hXpOfAyjo+3kxgKehjnsqPABYAPwVgN/7ef17AK4DEABWAPhtoGNO1BEc\nlnmYmAJeFyllnZTy676njfDsf0Tjayj/XgDgIDz13rqCGdwUNpTr8hMA5VLKrwBASvnHIMc41Qzl\nmkgAUX0/zwTweRDjm7KklDfhuZvan+8D+B/SoxFAtBBi7mDHnKgJjlqZhxh/faSUPQD6yzzQ+BnK\ndfG2BZ6Mm8ZXwOvSN5w7X0r5v4MZ2BQ3lH8vHwD4QAjRIIRoFEJkBS26qWko1+QAgB8IIV4A+D8A\ntgcnNApguN8/34xSDfTNI4T4AYBkAN8JdSxTnRBiGoBjAH4Y4lDIVzg801Sr4BntvCmEMEkp/xTS\nqKa2jwCck1IeFUKkwrNXW4KU8s+hDoyGZ6KO4LDMw8Q0lOsCIcS/AvCfAFillN1Bim0qC3RdvgUg\nAUC9EOIpPPPXV7jQeNwN5d/LCwBXpJT/JKV0AvgMnoSHxsdQrskWAP8LAKSUvwEQAU8RTgqtIX3/\neJuoCQ7LPExMAa+LEGIZgP8GT3LD9QTBMeh1kVK+kVLqpJSxUspYeNZGWaWUIypgR0M2lP+O/Qqe\n0RsIIXTwTFm1BzPIKWYo1+QZgEwAEEIY4UlwvghqlKTmCoC/7rubagWAN1LKV4O9YUJOUcnxK/NA\nozDE61IKIBLAL/vWfD+TUlpDFvQUMMTrQkE2xOvyCYDvCiFaAfQCsEspORI9ToZ4TXYB+O9CiGJ4\nFhz/kP/zPP6EEBfgSfZ1feuf9gOYDgBSygp41kN9D8ATAF8D+FHAY/K6ERER0WQzUaeoiIiIiEaM\nCQ4RERFNOkxwiIiIaNJhgkNERESTDhMcIiIimnSY4BBRUAkheoUQd4UQvxdCXBVCRI/x8X8ohDjV\n9/MBIcR/GMvjE9E3AxMcIgq2f5RSLpVSJsCzh1VRqAMiosmHCQ4RhdJv4FUwTwhhF0LcFkK0CCH+\ns1f7X/e13RNX4gk1AAABeklEQVRCnO9r+9dCiN8KIX4nhPi/Qoh/HoL4iWiCmpA7GRPR5CeECINn\nS/yzfc+/C08dpuUABDz1sizw1JjbC+BfSim/FEK813eIWwBWSCmlEOLHAP4jPLvQEhExwSGioNMK\nIe7CM3LzEEBtX/t3+x6/63seCU/CswTAL6WUXwKAlPJ13+t6ABeFEHMBaAA4gxM+EX0TcIqKiILt\nH6WUSwH8BTwjNf1rcASAQ33rc5ZKKQ1SyrODHOckgFNSShOAfwdPUUQiIgBMcIgoRKSUXwP4KYBd\nQohweAog/lshRCQACCFihBDfBvD3ADYKIWb3tfdPUc0E8LLv5/ygBk9EEx6nqIgoZKSUvxNCtAD4\nSEp5XghhBPCbvkr0nQB+0Fft+e8A/D8hRC88U1g/BHAAnqr1X8GTBC0IxWcgoomJ1cSJiIho0uEU\nFREREU06THCIiIho0mGCQ0RERJMOExwiIiKadJjgEBER0aTDBIeIiIgmHSY4RERENOn8f0jN024s\nEWl3AAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 576x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "e8JGX0SuuX7v",
        "colab_type": "text"
      },
      "source": [
        "# Hyperparameter Tuning\n",
        "Each machine learning model has a set of parameters which could be set to different values. Currently we have been using mostly default parameters for our classifier, or manually setting them (e.g. C in both Logistic Regression and SVM), but our model will likely be able to be improved if we change these to fit the data better. The sensitivity to hyperparameter settings change depending on the classifier; for example logistic regression is relatively insensitive to hyperparameter settings. However it is still necessary to find the right range of hyperparameters, otherwise differences between models may just be down to the default tuning parameters rather than the behavior of the model or features<sup>1</sup>.\n",
        "\n",
        "---\n",
        "\n",
        "1. Zheng, A., & Casari, A. (2018). Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists. \" O'Reilly Media, Inc.\"."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PUpG-r8cuQ91",
        "colab_type": "text"
      },
      "source": [
        "## Grid Search\n",
        "\n",
        "A grid search is an exhaustive search paradigm where we specify a list inside a dictionary with various values for different hyperparameters. The computer will use this list to evaluate the model performance for each combination of values to obtain the set that scorers best on the given performance metric<sup>1</sup>.\n",
        "\n",
        "For support vector machines the values we will vary are C and Gamma. C controls the penalty for misclassification, with larger values corresponding to larger error penalties, meaning we can use this to control the the width of the margin around the decision boundary and therefore tune the bias-variance trade-off. Gamma is essentially a cut-off parameter for the kernal parameter, with increasing values increasing the influence of the training samples to create a tighter non-linear decision boundary<sup>1</sup>.\n",
        "\n",
        "The actual values we will test across come from a previous paper looking at machine learning models for seizure detection<sup>2</sup>. We will make it into a function that returns a dataframe of the scores and the best model as we will use the gridsearch again later.\n",
        "\n",
        "Once we've found the optimal hyperparamters we can then actually use these optimal hyper-parameters to re-train our final model on the full training set (including the validation data) to make the model slightly more accurate<sup>1</sup>. If we set *refit = True* (the default anyway), then this will do this for us for the best estimator.\n",
        "\n",
        "**NOTES**\n",
        "- if the grid param scores were the maximum values evaluated you should try increasing the values to see if the score will improve\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017.\n",
        "\n",
        "2. Kjær, T. W., Sorensen, H. B. D., Groenborg, S., Pedersen, C. R., & Duun-Henriksen, J. (2017). Detection of Paroxysms in Long-Term, Single Channel EEG-Monitoring of Patients with Typical Absence Seizure. IEEE Journal of Translational Engineering in Health and Medicine, 5(September 2016). https://doi.org/10.1109/JTEHM.2017.2649491"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1AYImKYvu0Ej",
        "colab_type": "code",
        "outputId": "b83a64f5-b995-4b1b-eba0-04683b550456",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 244
        }
      },
      "source": [
        "%%time\n",
        "from sklearn.externals import joblib\n",
        "from sklearn.model_selection  import GridSearchCV\n",
        "\n",
        "# make a parameter grid with the range of hyperparameteer values of interest\n",
        "PARAM_GRID = {'clf__C': [0.5, 1.0, 2.0, 4.0, 8.0], \n",
        "              'clf__gamma': [0.005, 0.01, 0.02, 0.05, 0.1, 0.2]}\n",
        "\n",
        "def Grid_Search(X_train, y_train, estimator, cv, \n",
        "                param_grid, scorer, pipe_file_path):\n",
        "\n",
        "  # create gridsearch object\n",
        "  gs = GridSearchCV(estimator=estimator, \n",
        "                    param_grid=param_grid, \n",
        "                    scoring=scorer, \n",
        "                    cv=cv,\n",
        "                    return_train_score=True,\n",
        "                    refit = True,\n",
        "                    n_jobs=-1)\n",
        "\n",
        "  # fit the gridsearch object\n",
        "  gs = gs.fit(X_train, y_train)\n",
        "\n",
        "  # get the results of the gridsearch\n",
        "  results = pd.DataFrame(gs.cv_results_)\n",
        "\n",
        "  # select the best estimator\n",
        "  clf_pipe = gs.best_estimator_\n",
        "\n",
        "  # save\n",
        "  joblib.dump(clf_pipe, pipe_file_path)\n",
        "\n",
        "  display(results[['mean_fit_time','mean_score_time',\n",
        "                   'params','mean_test_score',\n",
        "                   'std_test_score']].sort_values(by='mean_test_score',\n",
        "                                                  ascending =False).head())\n",
        "\n",
        "  return clf_pipe, results\n",
        "\n",
        "best_svm_pipe, svm_grid_results = Grid_Search(X_train, y_train, pipe_svc, \n",
        "                                              StratKFold, PARAM_GRID, SCORER, \n",
        "                                              'Grid_SVM.joblib')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>mean_fit_time</th>\n",
              "      <th>mean_score_time</th>\n",
              "      <th>params</th>\n",
              "      <th>mean_test_score</th>\n",
              "      <th>std_test_score</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>0.013694</td>\n",
              "      <td>0.000766</td>\n",
              "      <td>{'clf__C': 4.0, 'clf__gamma': 0.05}</td>\n",
              "      <td>0.987500</td>\n",
              "      <td>0.026680</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>27</th>\n",
              "      <td>0.013307</td>\n",
              "      <td>0.000807</td>\n",
              "      <td>{'clf__C': 8.0, 'clf__gamma': 0.05}</td>\n",
              "      <td>0.987500</td>\n",
              "      <td>0.026680</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>26</th>\n",
              "      <td>0.009954</td>\n",
              "      <td>0.000696</td>\n",
              "      <td>{'clf__C': 8.0, 'clf__gamma': 0.02}</td>\n",
              "      <td>0.987500</td>\n",
              "      <td>0.026680</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>0.009221</td>\n",
              "      <td>0.000655</td>\n",
              "      <td>{'clf__C': 4.0, 'clf__gamma': 0.01}</td>\n",
              "      <td>0.983333</td>\n",
              "      <td>0.027639</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25</th>\n",
              "      <td>0.009441</td>\n",
              "      <td>0.000686</td>\n",
              "      <td>{'clf__C': 8.0, 'clf__gamma': 0.01}</td>\n",
              "      <td>0.983333</td>\n",
              "      <td>0.027639</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "    mean_fit_time  mean_score_time  ... mean_test_score  std_test_score\n",
              "21       0.013694         0.000766  ...        0.987500        0.026680\n",
              "27       0.013307         0.000807  ...        0.987500        0.026680\n",
              "26       0.009954         0.000696  ...        0.987500        0.026680\n",
              "19       0.009221         0.000655  ...        0.983333        0.027639\n",
              "25       0.009441         0.000686  ...        0.983333        0.027639\n",
              "\n",
              "[5 rows x 5 columns]"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "CPU times: user 444 ms, sys: 10.6 ms, total: 455 ms\n",
            "Wall time: 3.27 s\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MKjixgGFvg3f",
        "colab_type": "text"
      },
      "source": [
        "## Randomized Search\n",
        "\n",
        "Although a powerful method, gridsearch is computationally expensive as it has to evaluate all the possible parameter combinations. If we were working with a larger dataset (as we will in later tutorials), it is much better to randomly sample different random parameter combinations within a given range using RandomizedSearchCV<sup>1</sup>. \n",
        "\n",
        "You can provide distributions for sampling parameters as demonstrated for gamma below. The distributions just make it more likely a value will be picked within a certain range. For example an exponential continuous random variable could be set so its more likely to get a lower number. Lets plot 1000 random samples and see where they lie.\n",
        "\n",
        "---\n",
        "\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fP8O7CDlvjcr",
        "colab_type": "code",
        "outputId": "1edbafb6-9d99-4934-e644-23e96f914a65",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        }
      },
      "source": [
        "from scipy.stats import expon\n",
        "\n",
        "plt.hist(expon(scale=0.1).rvs(size=1000), histtype='stepfilled', alpha=0.2)\n",
        "plt.xlabel('Parameter Number')\n",
        "plt.ylabel('Times picked')\n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "drEviisnvk2T",
        "colab_type": "text"
      },
      "source": [
        "...or you could use a gamma continuous random variable to provide a more 'normal' distribution."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "CL_RSaMOvnrk",
        "colab_type": "code",
        "outputId": "58e1faac-b2d3-435a-cff5-0295df1c0207",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        }
      },
      "source": [
        "from scipy.stats import gamma\n",
        "\n",
        "plt.hist(gamma(a=10, scale=0.01).rvs(size=1000), histtype='stepfilled', alpha=0.2)\n",
        "plt.xlabel('Parameter Number')\n",
        "plt.ylabel('Times picked')\n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAXUUlEQVR4nO3de7SldX3f8fcHEFDuhJEiAw5YWBZF\nEUfEqFmgNl5WK2qQgGhQWR2NGGNNVwOaVpOUFbIar7VKx2oA6w2rKKlGROqNRpQBkauGEUFmHLl4\nQQRFGb794/mdh83hnDP7nDl778PM+7XWXvvZv+f25dkP8znP7bdTVUiSBLDNpAuQJC0dhoIkqWco\nSJJ6hoIkqWcoSJJ62026gM2x11571YoVKyZdhiQ9pFx22WW3V9WymcY9pENhxYoVrFmzZtJlSNJD\nSpKbZhvn6SNJUs9QkCT1DAVJUs9QkCT1DAVJUs9QkCT1DAVJUs9QkCT1DAVJUm9kTzQn2Q84B9gb\nKGB1Vb07yduAfwfc1iZ9c1V9vs1zGnAysBF4Q1VdMKr6tkZXrbtjYus+dPluE1u3pOGNspuLe4E/\nq6rLk+wCXJbkwjbunVX1d4MTJzkEOB54HPAo4EtJDq6qjSOsUZI0YGSnj6pqQ1Vd3obvBK4D9p1j\nlmOAj1fVPVX1A2AtcMSo6pMkPdhYrikkWQE8Cfhma3p9kiuTfCjJHq1tX+DmgdnWMUOIJFmVZE2S\nNbfddtv00ZKkzTDyUEiyM/Ap4I1V9Qvg/cBjgMOADcDb57O8qlpdVSurauWyZTP2/CpJWqCRhkKS\nh9EFwkeq6tMAVXVLVW2sqvuAD3D/KaL1wH4Dsy9vbZKkMRlZKCQJ8EHguqp6x0D7PgOTvRi4ug2f\nDxyfZIckBwAHAd8aVX2SpAcb5d1HTwdeAVyV5IrW9mbghCSH0d2meiPwGoCquibJucC1dHcuneKd\nR5I0XiMLhaq6GMgMoz4/xzynA6ePqiZJ0tx8olmS1DMUJEk9Q0GS1DMUJEm9Ud59JPUm1RmfHfFJ\n8+ORgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqG\ngiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSpZyhIknqGgiSp\n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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "quqSSpnxvqj7",
        "colab_type": "text"
      },
      "source": [
        "So instead of a set parameter dictionary lets provide our C with a random number between 0.1 and 8, and the Gamma parameter a gamma distribution around 0.1."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "MXDyWMYJvyKk",
        "colab_type": "code",
        "outputId": "2797e0d1-d4b1-4aa1-e938-fcb9b669c439",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 244
        }
      },
      "source": [
        "%%time\n",
        "from sklearn.externals import joblib\n",
        "from sklearn.model_selection  import RandomizedSearchCV\n",
        "from scipy.stats import randint as sp_randint\n",
        "\n",
        "PARAM_DIST = {'clf__C': sp_randint(0.1, 8.), \n",
        "              'clf__gamma': gamma(a=10, scale=0.01)}\n",
        "\n",
        "# Number of parameter settings that are sampled. \n",
        "# n_iter trades off runtime vs quality of the solution.\n",
        "N_ITER = 10\n",
        "\n",
        "def Rand_Search(X_train, y_train, estimator, cv, n_iter,\n",
        "                param_dist, scorer, pipe_file_path):\n",
        "        \n",
        "  # create gridsearch object\n",
        "  gs = RandomizedSearchCV(estimator=estimator,\n",
        "                          param_distributions=param_dist, \n",
        "                          n_iter = n_iter,\n",
        "                          scoring=scorer, \n",
        "                          cv=cv,\n",
        "                          return_train_score=True,\n",
        "                          n_jobs=-1)\n",
        "\n",
        "  # fit the gridsearch object\n",
        "  gs = gs.fit(X_train, y_train)\n",
        "\n",
        "  # get the results of the gridsearch\n",
        "  results = pd.DataFrame(gs.cv_results_)\n",
        "\n",
        "  # select the best estimator\n",
        "  clf_pipe = gs.best_estimator_\n",
        "\n",
        "  # save\n",
        "  joblib.dump(clf_pipe, pipe_file_path)\n",
        "\n",
        "  display(results[['mean_fit_time','mean_score_time',\n",
        "                   'params','mean_test_score',\n",
        "                   'std_test_score']].sort_values(by='mean_test_score',\n",
        "                                                  ascending =False).head())\n",
        "\n",
        "Rand_Search(X_train, y_train, pipe_svc, StratKFold, N_ITER, \n",
        "            PARAM_GRID, SCORER, 'Rand_SVM.joblib')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>mean_fit_time</th>\n",
              "      <th>mean_score_time</th>\n",
              "      <th>params</th>\n",
              "      <th>mean_test_score</th>\n",
              "      <th>std_test_score</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.014617</td>\n",
              "      <td>0.000794</td>\n",
              "      <td>{'clf__gamma': 0.05, 'clf__C': 8.0}</td>\n",
              "      <td>0.987500</td>\n",
              "      <td>0.026680</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>0.010765</td>\n",
              "      <td>0.000722</td>\n",
              "      <td>{'clf__gamma': 0.02, 'clf__C': 4.0}</td>\n",
              "      <td>0.983333</td>\n",
              "      <td>0.027639</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>0.010138</td>\n",
              "      <td>0.000700</td>\n",
              "      <td>{'clf__gamma': 0.01, 'clf__C': 4.0}</td>\n",
              "      <td>0.983333</td>\n",
              "      <td>0.027639</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>0.012317</td>\n",
              "      <td>0.000750</td>\n",
              "      <td>{'clf__gamma': 0.02, 'clf__C': 2.0}</td>\n",
              "      <td>0.975000</td>\n",
              "      <td>0.038188</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>0.027221</td>\n",
              "      <td>0.000997</td>\n",
              "      <td>{'clf__gamma': 0.2, 'clf__C': 8.0}</td>\n",
              "      <td>0.970833</td>\n",
              "      <td>0.041874</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   mean_fit_time  mean_score_time  ... mean_test_score  std_test_score\n",
              "1       0.014617         0.000794  ...        0.987500        0.026680\n",
              "0       0.010765         0.000722  ...        0.983333        0.027639\n",
              "7       0.010138         0.000700  ...        0.983333        0.027639\n",
              "5       0.012317         0.000750  ...        0.975000        0.038188\n",
              "8       0.027221         0.000997  ...        0.970833        0.041874\n",
              "\n",
              "[5 rows x 5 columns]"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "CPU times: user 190 ms, sys: 3.62 ms, total: 194 ms\n",
            "Wall time: 1.02 s\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZlUOdY1kwdss",
        "colab_type": "text"
      },
      "source": [
        "Imagining we have decided this is the best method to use, we could then use this on our test set as a final performance evaluation."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eqybCZidwbSW",
        "colab_type": "code",
        "outputId": "1d0ec6af-fb1a-4b5d-fbb3-4c3227c3f793",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 269
        }
      },
      "source": [
        "predictions = best_svm_pipe.predict(X_test)\n",
        "\n",
        "confmat = confusion_matrix(y_true=y_test, y_pred=predictions)\n",
        "\n",
        "pretty_confusion_matrix(confmat)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\ngg==\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "94E-MoWkwomP",
        "colab_type": "text"
      },
      "source": [
        "## Bayesian Optimization\n",
        "\n",
        "Optimizing the hyperparameters of a machine learning model could be seen as a minimization problem, as we are looking for the lowest validation loss<sup>1</sup>. Bayesian optimization is a probabilisitic model that can be more efficient than manual, random, or grid search for finding optimal hyperparameters<sup>2</sup>. There are a number of python packages to do bayesian optimization such as...\n",
        "\n",
        "- Spearmint<sup>3</sup>\n",
        "    - Gaussian process\n",
        "- Hyperopt<sup>4</sup>\n",
        "    - Tree Parzen Estimator (TPE)\n",
        "- SMAC<sup>5</sup>\n",
        "    - Random forest regression\n",
        "    \n",
        "We are going to use Hyperopt, mainly because there are a number of tutorials on its use<sup>6,7</sup> .\n",
        "\n",
        "Alike to random search, a search space needs to be specified. Although initally stochastic, as hyperopt gets more feedback from an objective function, it samples parts of the search space that gives it the most meaningful feedback<sup>1</sup>.\n",
        "\n",
        "We can use STATUS_OK and Trials to store information at each timestep and use them for visualisations. \n",
        "\n",
        "**NOTES**\n",
        "- This implimentation was based on<sup>1</sup>\n",
        "- For a good conceptual explanation of the method, read [this post]\n",
        "- Notice that for the kernel we have different methods in the PARAM_DIST depending on the kernel it picks. This just means it only tests a value for a certain parmeter if another is chosen (creates a dependency). For example, there is no reason to pick a Gamma parameter if you are going to be testing a linear kernel.\n",
        "---\n",
        "\n",
        "1. https://towardsdatascience.com/an-introductory-example-of-bayesian-optimization-in-python-with-hyperopt-aae40fff4ff0\n",
        "2. Bergstra, J., Yamins, D., & Cox, D. D. (2013). Making a science of model search: Hyperparameter optimization in hundreds of dimensions for vision architectures.\n",
        "3. https://github.com/HIPS/Spearmint\n",
        "4. http://hyperopt.github.io/hyperopt/\n",
        "5. https://automl.github.io/SMAC3/stable/\n",
        "6. https://github.com/WillKoehrsen/hyperparameter-optimization/blob/master/Bayesian%20Hyperparameter%20Optimization%20of%20Gradient%20Boosting%20Machine.ipynb\n",
        "7. https://medium.com/district-data-labs/parameter-tuning-with-hyperopt-faa86acdfdce\n",
        "[this post]: https://towardsdatascience.com/a-conceptual-explanation-of-bayesian-model-based-hyperparameter-optimization-for-machine-learning-b8172278050f"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nMXD66rX34Nb",
        "colab_type": "code",
        "outputId": "c4717948-a8fa-4419-ed9a-6fbf2a1982f9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 74
        }
      },
      "source": [
        "from hyperopt import fmin, tpe, hp, STATUS_OK, Trials\n",
        "from sklearn.preprocessing import StandardScaler\n",
        "\n",
        "PARAM_DIST = {\n",
        "  'C': hp.uniform('C', 0, 8),\n",
        "  'kernel': hp.choice('kernel', [\n",
        "      {'ktype': 'linear', 'gamma':'auto'}, # gamma ignored \n",
        "      {'ktype': 'sigmoid', 'gamma': hp.uniform('sig_gamma', 0, 1)}, \n",
        "      {'ktype':'poly', 'gamma': hp.uniform('poly_gamma', 0, 1)}, \n",
        "      {'ktype': 'rbf','gamma': hp.uniform('rbf_gamma', 0, 1)}]),\n",
        "  'scale': hp.choice('scale', [0, 1])\n",
        "}\n",
        "\n",
        "def hyperopt_train_test(params):\n",
        "  X_ = X_train[:]\n",
        "\n",
        "  if 'scale' in params:\n",
        "    if params['scale'] == 1:\n",
        "      sc = StandardScaler()\n",
        "      X_ = sc.fit_transform(X_)\n",
        "      \n",
        "  clf = SVC(C = params['C'],\n",
        "            kernel = params['kernel']['ktype'],\n",
        "            gamma = params['kernel']['gamma'],\n",
        "           )\n",
        "  \n",
        "  return cross_val_score(clf, X_, y_train, cv = 5).mean()\n",
        "\n",
        "def objective(params):\n",
        "  acc = hyperopt_train_test(params)\n",
        "  return {'loss': -acc,             # minus because we need to reduce\n",
        "          'status': STATUS_OK}\n",
        "\n",
        "trials = Trials()\n",
        "best = fmin(objective, PARAM_DIST, \n",
        "            algo=tpe.suggest, max_evals=500, \n",
        "            trials=trials)\n",
        "\n",
        "print('best:')\n",
        "print(best)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 500/500 [00:29<00:00, 16.86it/s, best loss: -0.9875]\n",
            "best:\n",
            "{'C': 0.6420956527993178, 'kernel': 0, 'scale': 1}\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "psw7r-Oa-9jO",
        "colab_type": "text"
      },
      "source": [
        "We can now plot the accuracy compared to the hyperparameter value. In this first plot we will look at the changes over time (my preffered way of looking at it).\n",
        "\n",
        "**NOTES**\n",
        "- This was based on<sup>1</sup>\n",
        "\n",
        "---\n",
        "1. https://medium.com/district-data-labs/parameter-tuning-with-hyperopt-faa86acdfdce"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "LCVIy3Bv-HEE",
        "colab_type": "code",
        "outputId": "2de3d360-b42f-41ba-9b91-cc74a883c433",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 350
        }
      },
      "source": [
        "def trials_plot(plot_type):\n",
        "\n",
        "  #parameters = list(trials.trials[0]['misc']['vals'].keys())\n",
        "  parameters = ['C', 'kernel', 'scale', 'sig_gamma', 'poly_gamma', 'rbf_gamma']\n",
        "  \n",
        "  f, ax = plt.subplots(nrows=2, ncols=int(len(parameters)/2), figsize=(10,5))\n",
        "  axes = ax.flat\n",
        "\n",
        "  for i, val in enumerate(parameters):\n",
        "    ys = []\n",
        "    for t in trials.trials:\n",
        "      if t['misc']['vals'][val]:\n",
        "        ys.extend(t['misc']['vals'][val])\n",
        "      else:\n",
        "        ys.append(np.nan)\n",
        "    ys = np.array(ys).ravel()\n",
        "    \n",
        "    if plot_type=='Accuracy':\n",
        "      xs = [-t['result']['loss'] for t in trials.trials]\n",
        "      axes[i].scatter(xs, ys, s=20, linewidth=0.01, \n",
        "                    alpha=0.25, c=xs, cmap = plt.cm.jet)\n",
        "    elif plot_type=='Time':\n",
        "      xs = [t['tid'] for t in trials.trials]\n",
        "      c = [-t['result']['loss'] for t in trials.trials]\n",
        "      im = axes[i].scatter(xs, ys, s=20,c = c, linewidth=0.01, \n",
        "                           cmap = plt.cm.jet, vmin=0., vmax=1)\n",
        "    else:\n",
        "      print('plot_type can be Accuracy or Time')\n",
        "      \n",
        "    axes[i].set_title(val)\n",
        "  \n",
        "  plt.subplots_adjust(wspace=0.2, hspace=0.5)\n",
        "  \n",
        "  if plot_type=='Time':\n",
        "    cbar = f.colorbar(im, ax=ax.ravel().tolist(), fraction=0.046, pad=0.04)\n",
        "    cbar.ax.set_title('Score')\n",
        "\n",
        "  # add a big axes, hide frame\n",
        "  f.add_subplot(111, frameon=False)\n",
        "  # hide tick and tick label of the big axes\n",
        "  plt.tick_params(labelcolor='none', \n",
        "                  top=False, \n",
        "                  bottom=False, \n",
        "                  left=False, \n",
        "                  right=False)\n",
        "  plt.grid(False)\n",
        "  plt.xlabel(plot_type)\n",
        "  plt.ylabel('Hyperparameter Value')\n",
        "\n",
        "  plt.show()\n",
        "\n",
        "  \n",
        "trials_plot(plot_type='Time')  "
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 720x360 with 8 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0FxYxcFRGR7R",
        "colab_type": "text"
      },
      "source": [
        "FOr a more simple view, we can just plot the accuracy to the parameter. Here it makes it clear that we are more likely to get better scores when C is low, we use the first kernel (0: linear), and scale our data."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-6WmN2W-_ZY2",
        "colab_type": "code",
        "outputId": "ef468191-90dc-4341-fe07-e889f03a870f",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 350
        }
      },
      "source": [
        "trials_plot(plot_type='Accuracy')"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 720x360 with 7 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kboASAEJH4wD",
        "colab_type": "text"
      },
      "source": [
        "We may want to get out a dataframe similar to what we saw before from the other methods so lets do that before we move on."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S3YbMsCy_Al2",
        "colab_type": "code",
        "outputId": "836adeb9-c898-40b2-a05c-3f043da0d30d",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 238
        }
      },
      "source": [
        "df = pd.DataFrame()\n",
        "for i, t in enumerate(trials.trials):\n",
        "  for param in t['misc']['vals']:\n",
        "    # if there is nothing in the dict for that parameter...\n",
        "    if not t['misc']['vals'][param]:\n",
        "      # ...put an empty value\n",
        "      t['misc']['vals'][param] = [np.nan]\n",
        "  df = pd.DataFrame(t['misc']['vals'])\n",
        "  df['loss'] = t['result']['loss']\n",
        "  df['tid'] = t['tid']\n",
        "  df = df.set_index('tid')\n",
        "  df['time (ms)'] = (t['refresh_time'] - t['book_time']).microseconds/1000\n",
        "  \n",
        "  if i ==0:\n",
        "    results = df\n",
        "  else:\n",
        "    results = pd.concat([results, df])\n",
        "    \n",
        "    \n",
        "results.head()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>C</th>\n",
              "      <th>kernel</th>\n",
              "      <th>poly_gamma</th>\n",
              "      <th>rbf_gamma</th>\n",
              "      <th>scale</th>\n",
              "      <th>sig_gamma</th>\n",
              "      <th>loss</th>\n",
              "      <th>time (ms)</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>tid</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2.264242</td>\n",
              "      <td>2</td>\n",
              "      <td>0.204688</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.966667</td>\n",
              "      <td>25.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>7.597689</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0</td>\n",
              "      <td>0.416911</td>\n",
              "      <td>-0.666667</td>\n",
              "      <td>16.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>3.923304</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>0.971468</td>\n",
              "      <td>-0.900000</td>\n",
              "      <td>11.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>5.195620</td>\n",
              "      <td>3</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0.298334</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.966667</td>\n",
              "      <td>27.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>7.800837</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.983333</td>\n",
              "      <td>12.0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "            C  kernel  poly_gamma  ...  sig_gamma      loss  time (ms)\n",
              "tid                                ...                                \n",
              "0    2.264242       2    0.204688  ...        NaN -0.966667       25.0\n",
              "1    7.597689       1         NaN  ...   0.416911 -0.666667       16.0\n",
              "2    3.923304       1         NaN  ...   0.971468 -0.900000       11.0\n",
              "3    5.195620       3         NaN  ...        NaN -0.966667       27.0\n",
              "4    7.800837       0         NaN  ...        NaN -0.983333       12.0\n",
              "\n",
              "[5 rows x 8 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 53
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Qq00rjHLoN51",
        "colab_type": "code",
        "outputId": "602a6347-b2d2-4d33-b424-0a8294ce4d02",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 455
        }
      },
      "source": [
        "results.sort_values(by='loss',ascending = True).head()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>C</th>\n",
              "      <th>kernel</th>\n",
              "      <th>poly_gamma</th>\n",
              "      <th>rbf_gamma</th>\n",
              "      <th>scale</th>\n",
              "      <th>sig_gamma</th>\n",
              "      <th>loss</th>\n",
              "      <th>time (ms)</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>tid</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2.264242</td>\n",
              "      <td>2</td>\n",
              "      <td>0.204688</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.966667</td>\n",
              "      <td>25.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>7.597689</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0</td>\n",
              "      <td>0.416911</td>\n",
              "      <td>-0.666667</td>\n",
              "      <td>16.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>3.923304</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>0.971468</td>\n",
              "      <td>-0.900000</td>\n",
              "      <td>11.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>5.195620</td>\n",
              "      <td>3</td>\n",
              "      <td>NaN</td>\n",
              "      <td>0.298334</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.966667</td>\n",
              "      <td>27.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>7.800837</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.983333</td>\n",
              "      <td>12.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>495</th>\n",
              "      <td>0.351188</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.970833</td>\n",
              "      <td>10.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>496</th>\n",
              "      <td>4.654264</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.983333</td>\n",
              "      <td>10.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>497</th>\n",
              "      <td>0.515028</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.987500</td>\n",
              "      <td>10.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>498</th>\n",
              "      <td>0.888586</td>\n",
              "      <td>2</td>\n",
              "      <td>0.485015</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.929167</td>\n",
              "      <td>12.0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>499</th>\n",
              "      <td>0.143699</td>\n",
              "      <td>0</td>\n",
              "      <td>NaN</td>\n",
              "      <td>NaN</td>\n",
              "      <td>1</td>\n",
              "      <td>NaN</td>\n",
              "      <td>-0.970833</td>\n",
              "      <td>10.0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>500 rows × 8 columns</p>\n",
              "</div>"
            ],
            "text/plain": [
              "            C  kernel  poly_gamma  ...  sig_gamma      loss  time (ms)\n",
              "tid                                ...                                \n",
              "0    2.264242       2    0.204688  ...        NaN -0.966667       25.0\n",
              "1    7.597689       1         NaN  ...   0.416911 -0.666667       16.0\n",
              "2    3.923304       1         NaN  ...   0.971468 -0.900000       11.0\n",
              "3    5.195620       3         NaN  ...        NaN -0.966667       27.0\n",
              "4    7.800837       0         NaN  ...        NaN -0.983333       12.0\n",
              "..        ...     ...         ...  ...        ...       ...        ...\n",
              "495  0.351188       0         NaN  ...        NaN -0.970833       10.0\n",
              "496  4.654264       0         NaN  ...        NaN -0.983333       10.0\n",
              "497  0.515028       0         NaN  ...        NaN -0.987500       10.0\n",
              "498  0.888586       2    0.485015  ...        NaN -0.929167       12.0\n",
              "499  0.143699       0         NaN  ...        NaN -0.970833       10.0\n",
              "\n",
              "[500 rows x 8 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 52
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "IV2PJC2yJlhN",
        "colab_type": "text"
      },
      "source": [
        "There is even a version that focuses on making Hyperopt have a more Sklearn API focus\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Yf2Ie03TL06x",
        "colab_type": "code",
        "outputId": "c41bec1d-68d3-414a-efd5-2ae32f78e9c2",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 455
        }
      },
      "source": [
        "!pip install hpsklearn"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting hpsklearn\n",
            "  Downloading https://files.pythonhosted.org/packages/ce/cb/61b99f73621e2692abd0e730f7888a9983d01f626868336fa1db1d57bc1e/hpsklearn-0.1.0.tar.gz\n",
            "Requirement already satisfied: hyperopt in /usr/local/lib/python3.6/dist-packages (from hpsklearn) (0.1.2)\n",
            "Collecting nose\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl (154kB)\n",
            "\u001b[K     |████████████████████████████████| 163kB 5.2MB/s \n",
            "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from hpsklearn) (1.17.5)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.6/dist-packages (from hpsklearn) (0.22.1)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from hpsklearn) (1.4.1)\n",
            "Requirement already satisfied: pymongo in /usr/local/lib/python3.6/dist-packages (from hyperopt->hpsklearn) (3.10.1)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from hyperopt->hpsklearn) (1.12.0)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.6/dist-packages (from hyperopt->hpsklearn) (4.28.1)\n",
            "Requirement already satisfied: networkx in /usr/local/lib/python3.6/dist-packages (from hyperopt->hpsklearn) (2.4)\n",
            "Requirement already satisfied: future in /usr/local/lib/python3.6/dist-packages (from hyperopt->hpsklearn) (0.16.0)\n",
            "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.6/dist-packages (from scikit-learn->hpsklearn) (0.14.1)\n",
            "Requirement already satisfied: decorator>=4.3.0 in /usr/local/lib/python3.6/dist-packages (from networkx->hyperopt->hpsklearn) (4.4.1)\n",
            "Building wheels for collected packages: hpsklearn\n",
            "  Building wheel for hpsklearn (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for hpsklearn: filename=hpsklearn-0.1.0-cp36-none-any.whl size=23914 sha256=037bd045b6ecc201f64d13047a66cf9f0227ebefac17266819c5f4f0e9afcafa\n",
            "  Stored in directory: /root/.cache/pip/wheels/41/ee/c4/3c267cbf78f0905434ee36b915d97a20610ad3af7ff3c75852\n",
            "Successfully built hpsklearn\n",
            "Installing collected packages: nose, hpsklearn\n",
            "Successfully installed hpsklearn-0.1.0 nose-1.3.7\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1_yaRqSMJu1I",
        "colab_type": "code",
        "outputId": "ceee576e-2fa5-4063-b9d2-86cd0272d21c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "source": [
        "from hpsklearn import HyperoptEstimator, svc\n",
        "from hpsklearn import standard_scaler, min_max_scaler, normalizer\n",
        "\n",
        "estim = HyperoptEstimator(\n",
        "    classifier=svc('mySVC', \n",
        "                   kernels=['linear', 'rbf', 'poly', 'sigmoid'],\n",
        "                   C = hp.uniform('C', 0, 8),\n",
        "                   gamma = hp.uniform('gamma', 0, 1)),\n",
        "    preprocessing = [standard_scaler('standard'),\n",
        "                     min_max_scaler('minmax'),\n",
        "                     normalizer('Normal')],\n",
        "    max_evals=500\n",
        ")\n",
        "\n",
        "estim.fit(X_train,y_train)\n",
        "\n",
        "predictions = estim.predict(X_test)\n",
        "\n",
        "confmat = confusion_matrix(y_true=y_test, y_pred=predictions)\n",
        "\n",
        "pretty_confusion_matrix(confmat)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 1/1 [00:00<00:00, 30.74it/s, best loss: 0.20833333333333337]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.72it/s, best loss: 0.20833333333333337]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.57it/s, best loss: 0.04166666666666663]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.13it/s, best loss: 0.04166666666666663]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.25it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.14it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 35.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.78it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.37it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.69it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.75it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.65it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.42it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.87it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.00it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.51it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 34.20it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 34.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.90it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.43it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.84it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.56it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.04it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.29it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.56it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.47it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 35.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.42it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 34.31it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.04it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.65it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.77it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.00it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 23.73it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.92it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.11it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.42it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.37it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.62it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.41it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.50it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.16it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.26it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.86it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.53it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.93it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.66it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.50it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.70it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.61it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.13it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.59it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.55it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.38it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.16it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.92it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.07it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.25it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.90it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.86it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.58it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.80it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.20it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.12it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.83it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.21it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.63it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.37it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.09it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.38it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.03it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.50it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.66it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.94it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.80it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.77it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.53it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.26it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.93it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.26it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.71it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.95it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.76it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.56it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.94it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.75it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.64it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.87it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.47it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.22it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.55it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.63it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.78it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 23.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.10it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.20it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.29it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.51it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.36it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.75it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.84it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.77it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.47it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.46it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 33.25it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.78it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.97it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.95it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.43it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.64it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.26it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.62it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.80it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.97it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.16it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.79it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.50it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.25it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.16it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.68it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.31it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.04it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.51it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.47it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.29it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.10it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.12it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.38it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.36it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.32it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.69it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.01it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.76it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.04it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.26it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.21it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.11it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.48it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.06it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.78it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.87it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.82it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.63it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.92it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.37it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.00it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.22it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.14it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.90it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.20it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.40it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 32.92it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.70it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.56it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.40it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.53it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.60it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.75it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.72it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.83it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.48it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.13it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.83it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.86it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.73it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.43it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.64it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.91it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.54it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.42it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.03it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.40it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.84it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.48it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.11it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.04it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.41it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.32it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.68it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.43it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.73it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.68it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.84it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 31.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.91it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 23.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.18it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.93it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.82it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.34it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.83it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.10it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.12it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 22.40it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.08it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.31it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.32it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.62it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.58it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.48it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.28it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 23.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.20it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.28it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.36it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.07it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.36it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.42it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.14it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.57it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.46it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.92it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.07it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.10it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.09it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.65it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.89it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.16it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.32it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.43it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.87it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.14it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 20.55it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.72it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.03it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.01it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.38it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.65it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.68it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.35it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.40it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.87it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.60it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.43it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.82it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.02it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.73it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.26it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.48it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.79it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.80it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.87it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.45it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.29it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.90it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.25it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.75it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.69it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.16it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.23it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.90it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.56it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.33it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.70it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.11it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.13it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.53it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.71it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.11it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 23.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.38it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.09it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 23.80it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.09it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.19it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.58it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 19.96it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.36it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.76it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.05it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.98it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.27it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.99it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.39it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 24.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.67it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.47it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.18it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.95it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.89it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.44it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.14it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.29it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.48it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.03it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.21it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.72it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.24it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.07it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.00it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.00it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.66it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.66it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 25.80it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.30it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.51it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.11it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.17it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 30.49it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.85it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.88it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.15it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 22.89it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.09it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.41it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.71it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.68it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.21it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.64it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 29.20it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.81it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.74it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.89it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.52it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.42it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 26.31it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 28.01it/s, best loss: 0.0]\n",
            "100%|██████████| 1/1 [00:00<00:00, 27.03it/s, best loss: 0.0]\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 288x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xenZdxh_a7jn",
        "colab_type": "text"
      },
      "source": [
        "## Validation Curves\n",
        "\n",
        "We can also manually tweek hyperparameters using validation curves. Validation curves are very similar to learning curves, but instead plot the training and test accuracies to see how an estimator performs when varying the models parameters.\n",
        "\n",
        "Unfortunately mlxtend at time of writing does not have a validation curve, so we'll have to use the easy implimentation provided in Raschka and Mirjalili's book<sup>1</sup>\n",
        "\n",
        "---\n",
        "1. Raschka, Sebastian, and Vahid Mirjalili. Python Machine Learning, 2nd Ed. Packt Publishing, 2017."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fRnZy0T2bS-n",
        "colab_type": "code",
        "outputId": "affc9f26-f9f6-4d13-a9d2-8a6e7b861d0b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 283
        }
      },
      "source": [
        "from sklearn.model_selection import validation_curve\n",
        "param_range = [0.001, 0.01, 0.1, 1.0, 10.0, 100.0]\n",
        "\n",
        "train_scores, test_scores = validation_curve(estimator=pipe_svc,\n",
        "                                             X=X_train,\n",
        "                                             y=y_train,\n",
        "                                             param_name='clf__C',\n",
        "                                             param_range=param_range,\n",
        "                                             cv=10)\n",
        "train_mean = np.mean(train_scores, axis=1)\n",
        "train_std = np.std(train_scores, axis=1)\n",
        "test_mean = np.mean(test_scores, axis=1)\n",
        "test_std = np.std(test_scores, axis=1)\n",
        "\n",
        "plt.plot(param_range, \n",
        "         train_mean,\n",
        "         color='blue',\n",
        "         marker='o',\n",
        "         markersize=5, \n",
        "         label='training accuracy')\n",
        "\n",
        "plt.fill_between(param_range, train_mean + train_std,\n",
        "                 train_mean - train_std, alpha=0.15,\n",
        "                 color='blue')\n",
        "\n",
        "plt.plot(param_range, test_mean,\n",
        "         color='green', linestyle='--',\n",
        "         marker='s', markersize=5,\n",
        "         label='validation accuracy')\n",
        "\n",
        "plt.fill_between(param_range,\n",
        "                 test_mean + test_std,\n",
        "                 test_mean - test_std,\n",
        "                 alpha=0.15, color='green')\n",
        "\n",
        "plt.grid()\n",
        "plt.xscale('log')\n",
        "plt.legend(loc='lower right')\n",
        "plt.xlabel('Parameter C')\n",
        "plt.ylabel('Accuracy')\n",
        "plt.ylim([0.8, 1.03])\n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nhHsAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JB5z6MJqbppV",
        "colab_type": "text"
      },
      "source": [
        "Using above we can see that may we should look at setting C to around 1. As you can see this reduces the problem of overfitting we had previously."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Tdp8Wh76bwBW",
        "colab_type": "code",
        "outputId": "84fcc013-3d8c-4b39-9911-fab991dafcfb",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 591
        }
      },
      "source": [
        "from mlxtend.plotting import plot_learning_curves\n",
        "from sklearn.base import clone\n",
        "\n",
        "change_C_SVM = clone(pipe_svc).set_params(**{'clf__C': 1})\n",
        "\n",
        "for svm in [pipe_svc, change_C_SVM]:\n",
        "  plot_learning_curves(X_train, \n",
        "                       y_train, \n",
        "                       X_test, \n",
        "                       y_test, \n",
        "                       svm, \n",
        "                       train_marker='o', \n",
        "                       test_marker='^', \n",
        "                       scoring='accuracy', \n",
        "                       print_model =False)\n",
        "  plt.ylim(top=1.01)\n",
        "  plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nY2O5cuUKZmZmdOnShR49evyufARBEOpKr7i4WF37bvJ0+/Zt6c5Cuai6mUOoVNUecnwvPM6zcPNC\nfRLtoelZaA+tH1ItCIIgCM8DEfgEQRAEWRGBTxAEQZAVEfgEQRAEWRGBTxAEQZAVEfgEQRAEWRGB\n7wkMDAwoLS1FrRa/+JArtVpNaWkpBga1PuRIEIRnhPhvfoIXXniB+/fvS88nlYM7d+5gYmKi62L8\nZRQXF2NpaVltlQ5BEJ5dIvDVolGjRrL60CsqKhKrEDykqKhIVtdfEORADHUKgiAIsiICnyAIgiAr\nIvAJgiAIsiICnyAIgiArYnUGQRAEQVZEj08QBEGQFRH4BEEQBFkRgU8QBEGQFRH4BEEQBFkRgU8Q\nBEGQFdkGvszMTNzc3FAoFPTs2ZMDBw7oukj1IiUlhd69e2NjY4ODgwOhoaGcPHlSYx+1Wk1CQgLt\n2rXD0tISf39//vvf/+qoxPUrJSUFU1NT3n33XSlNju1x9epVxo0bh4ODAwqFAk9PT/bt2ydtl1Ob\nKJVK4uPjpc8LNzc34uPjqaiokPZ53ttj//79DB06lPbt22NqasqXX36psV2b+hcXFzN27FhsbW2x\ntbVl7NixFBcX12c1JLIMfBs2bGDmzJlMnTqVvXv30q1bN9544w1+/vlnXRftqdu3bx+jR48mJyeH\nzZs3Y2BgwKBBg7h165a0z8KFC1m0aBGJiYns2rULCwsLgoKCuHv3rg5L/vQdPnyYrKwsXF1dNdLl\n1h7FxcX0798ftVrN2rVr+fbbb/noo4+wsLCQ9pFTm6SmppKZmUliYiL5+fnMnz+fjIwMUlJSpH2e\n9/YoLS3FxcWF+fPnY2xsXG27NvWPjIzk+PHjZGdnk52dzfHjx4mKiqrPakhk+Tu+Pn364OrqSlpa\nmpTWpUsXAgMDmTVrlg5LVv9KSkqwtbXlyy+/xM/PD7VaTbt27RgzZgzTpk0DoKysDCcnJ+Li4oiI\niNBxiZ+O27dv07NnT9LS0khMTMTFxYWkpCRZtsecOXPYv38/OTk5NW6XW5uEhoZiZmbGp59+KqWN\nGzeOW7dusWbNGtm1R6tWrfjoo48YPnw4oN374fTp03h6erJ9+3a8vLwAOHjwIH5+fhw+fBgnJ6d6\nrYPsenwPHjzg2LFj+Pr6aqT7+vry7bff6qhUulNSUoJKpcLU1BSACxcuUFhYqNE+xsbGdO/e/blu\n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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb4AAAEfCAYAAAA+zaOiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd1xT1/sH8M/NgoAsZToR6wDFhYDW\nVVFcuCvu/XNbq9XibIvfOqr1q7ZapdZRR7Wtfot7VEWsiMWB4kBxY7XKkCkz6/7+iAavSfCCCQnw\nvF8vX5p7z02eHHPz5Jx7zzlMZmYmC0IIIaSSEJg6AEIIIaQsUeIjhBBSqVDiI4QQUqlQ4iOEEFKp\nUOIjhBBSqVDiI4QQUqlQ4iOEEFKpUOIjhBBSqVDiIxz37t0zdQhmhepDG9UJF9UHV3moD0p8hBBC\nKhVKfIQQQioVSnyEEEIqFZMmvujoaAwZMgSenp6wt7fHrl273nlMfHw8evbsCVdXV3h6emLFihVg\nWe482wcOHIC/vz+cnZ3h7++PQ4cOGestEEIIKWdMmvhyc3Ph5eWF5cuXQyqVvrN8dnY2+vfvD2dn\nZ5w+fRrLly/HunXr8MMPP2jKXLx4EePGjUNwcDCioqIQHByMMWPG4PLly8Z8K6W290EuvPckweHn\nf+G9Jwl7H+SaOiRC9GIy0/DBjm/BZKaZOhRCSk1kyhfv2rUrunbtCgCYOnXqO8vv3bsX+fn5CAsL\ng1QqhZeXF+7evYsNGzbgk08+AcMwCAsLQ/v27fH5558DABo2bIioqCiEhYVhy5YtRn0/JbX3QS4+\njc5CvlLdYn2Sq8Sn0VkAgOB61qYMjRCunCxITvwBUcR+MDnZUOz4DoWfLjZ1VISUSrm6xnfx4kW0\nadOG0zrs3Lkznj9/jsePHwMALl26hICAAM5xnTt3xoULF8o0Vj6+jn2pSXqv5StZfB370kQREfKW\n7ExI9vwE69lDIDmwA4KcbDAAxLFRsFw6A4K7100dISElZtIWX0mlpKSgevXqnG1OTk6afe7u7khO\nTtZse7NMSkpKsc9tirEnT3OlABgd2xUmHQtTHsbhlKXKWB+inGw4x/wJx9gzEMplusvcvQbR0k/x\nsk5DJLXvjRz3hmUcpfmojJ+R4phDfdSvX1/vvnKV+IypuEoylppXk/AkV6m13VokMEk8gPoDa6rX\nNkeVrT6YzDSIj/4GceRBMLJCXsfYPL4Dm8d3oGzYDLK+o6D0agkw2j/oKqrK9hl5l/JQH+Wqq9PZ\n2Rmpqamcba8fOzs7AwBcXFx0lnm935x85WMDqVD7CyJHwWL3PbrJhZQdJj0Fkl/WwurzIZD8uVdn\n0mN1HPcm4Z1rkH47G9Il0yG8cRFg33UEIaZRrhKfn58f/v77bxQUFGi2RUZGws3NDXXq1AEA+Pr6\nIjIyknNcZGQk/P39yzRWPoLrWWNtWztUt9L+b/js70xcTtXdxUSIoTBpybDYvgZWIcMhORkORi7X\nKqOyqwqVg6OOTnndhPdvQvrfOZAungrhtRhKgMTsmLSrMycnBw8fPgQAqFQqPH36FNevX4eDgwNq\n1aqF//znP4iNjcXBgwcBAAMHDsSKFSswdepUfP7557h//z6+++47zJkzB8yrrpXJkyejZ8+eWLNm\nDYKCgnD48GFERUXh+PHjJnufxQmuZ43geta4+kKGHkdTUfCq57NQCYw8nYbI3s5wtRKaNkhS4TCp\nzyE5vBuiqGNglAqdZVT2jpD3GgZ5xyBAYqHZ/mZXluDuDUgO7oDoxiWt44UPbkO6eh6U7g0g6zsa\nyhYfVqouUGK+mMzMTJP9HIuKikLv3r21tg8dOhRhYWGYMmUKzp07hxs3bmj2xcfH4/PPP8eVK1dg\nb2+PsWPHYu7cuZrEB6gHsC9ZsgSJiYmoW7cuvvjiC/Tp06dM3tP72PMgDxPPZnC2+TqJcbiHEyx0\ndIkaQ3nony9LFa0+mOR/ITm8C6LoP8Eota8vA4CqqjNkvYZD0b47J+G9pqtOBA9uQXJgB0TXYvS+\ntrL2B+prgC3bAYJy1dlUrIr2GXlf5aE+TJr4iLYvL2Vh3c0czrbh9a3wQ1t7TnI3lvLwoS1LZVkf\nhUoW2TIVsmQqZMlYZMlUyJaxiPg3H4ceFyBTxsJVKkBoK1sM/aBk4zyZpCeQHPoFovMnwahUOsuo\nHF0g6zVCnfBEYr3PVVydCB4lQHJgJ0RXo/Uer6zpoU6ArTpUiARI5wxXeagPuqvTzCzysUV8uhyn\nnxXdXLDrXh6aVhVjklcVE0ZGisOyLPKVLLJk2snrdQLL0kpq3DIFuhtgHEn5KkyJysTiy1nwc7FE\nQ3sRGtmL0NBejHq2Iq2eAebZY0gO7oQo5jQYVk/Cc6oOWZ8RUHzYFRC931eCqm4jFMxcCsHje+rX\nvXxWq4zw6UNI1y+Csro75H1GQuH/ESCg7nxSdkrV4svJyQHDMLC2ptlFjCGzUIWAQyl4+LLom1DI\nAOFdHdGxunbXkyGVh19rxsSy6uS17U4O1sfnIrVACXuJAB3dJKhVRYxs+VtJrVCFbLn633LdeaXM\nCBnAw1aEhnYidFA+R7+4vah76ywYPTeXqFxqQtZnJBRtOgNC/gmvJJ8RwZOHEB/cCdGlM/rjcKsF\nWe+RULQOKFEcZUWuYpErZ5GnYJGrUGn+ffxJPnbdy0daoRLOUiE+b1oF4xpVgUhQua9jlofvEF6J\n76+//sLhw4dx4cIF3L17FzKZ+m5DiUSCBg0awN/fH7169ULHjh2NHnBlkZApR+DhVLyUF/33VLUQ\n4HRvJ7jbGO/LoTx8aEsrT6FCUp4Kz/OUmj9JeSok5SnxLE+JpFeP355NpzzxzvkHCx/vw8DUi3rL\nZFarheRuw2DfsQusLfV3aepTms+I4OkjiA/9AtGF08Uk4hqQ9R4BRZvAYlueex/k4uvYl3iaq0RN\nayG+8rHBgLpWyFOyyJOzyFWo/+TJVchTsMhRqBNVnpxFjkKl+XfRPhX3OMXr51EhV8GW+AeNi1QA\nNyshXK2EcLMSvPpbyNlWzUJQJpcuTKE8fIfoTXxyuRw///wzfvjhBzx58gQODg5o1qwZ3N3dYW9v\nD5ZlkZmZicePH+PatWvIyMhAzZo18cknn2DcuHEQi0t+QhGuo//kY1hEOmdbYwcR/gxyQhWxca6N\nlIcP7dvkKhbJeUo8f5XUkvKUSMpX4lmuEkn56sT2PE+JLJl5JzQhA9hJBLCTMLCVCGAnEeBSSiHy\neXSBNn+ZiC8e70O/F/onY79pVRNL3fvhDyd/qBj156d2FaGmq1TdbSpGAzsRbCX6P1/v8xlhnj2G\n5NAuiP4+pbfrNcfBFVfbDcaVRh8hUylCtkyFbLm6u/hOhgy3MpUwceP6vUkEgIuVEG5SIdysBXCV\nvpkYixJmcf8PpqZi1T8S8l/9WNj3KA8bbuUiNV+JmtYifOVjY7ZzDutNfE2aNIFMJsPQoUPRv39/\nNG/evNgniouLw759+/Dbb79BIpFw7sQkpbcyLhtLr3Ln7uxTxxLbO1U1yi9GUye+N3/N17AWYqa3\nNXydLXS0zIoS3YsC1TsHV5cFieB14lInLzuJ4FUCYzjbbfWUsRYxWv+nb09kDgBSIfBpkyqoUUWE\nvDu30Pbv39HmX/0J75p1bSxx74/9jq3AMvy+SGtYCdHQXqRJhg3tRUjIkGPV9Rw8zVWgprUIX7S0\nQbda0qLrmHL19c3sV9c5ix6/tU+uQtWMfzHp7n4Mfn4OIj1pLNHCESvq9MF21w6QCSrnD+kqIgau\nVkK4Wgm0Wo2vk2T080Isj+O2gIPrWWu6aPNftYTVLWJ1j4Zmu+LtPyrkv2r55r+1L/+tcu+6Ji0V\nMljb1s4sk5/exLd582aMGDEClpaWJXrCwsJC7Ny5E+PHjzdIgJUdy7IYcyYdBxILONsXtrBBSHNb\ng7+eKRPf3ge5mB6dyesmD2NioHuWEjsJg0U+duqEZSGArZib1CxFxum60tW1N5hNVA8fuK5/8vX7\nDnXx33oDsMW6Oe+EV9bq5qdg7j8HMDopCmJW93/8E4uq+LZ2b2x1/QiFQkkZR6huiVuLGFiJGFiL\nGViJBLiTKYfMjJud+j7DZa2WtRA3BrmaOgwtNJyhHMiRq9DtSCriM7gDjXd3roqetd+9jmFJmDLx\nNfj1OVIKjPdtImLA+bX85rUXzTapECee5GPG+bdbWebx61Vw9wYk+7dDFK+/haes2xCyfqOhbNYG\nYBjkylW4l6VAQqYCdzLlmr8Tc5RQmcnZX7sgFXMfH8TYpL8g0ZMA/5U4YGXtXtjsFoACHQnQSsQU\nJSgRAysxA2uRQJOwivYJXiWworLWYsEb/37jOUQCWAjBsyXOYHUbO7R1s+D0SCS9cT359eNsuZlU\nvJExADLG1jB1GFp4J76ff/4Z/fv3h729vbFjIjokvlQg4FAq0guLEoONmMHJXk5oZG+4biBTJb4d\nd3PxaXQmAMC1IB27b6/HUK/pSLbg93lzshRwEtib3UKuVgJUtxKimqUAAp7dw0WtLIVZXK8QXP4L\nlltWQpCXo7eMsp4nZH3HQNnUj9cMKfkKFvezucnwTqYCD7IVKMv7e2zEDGzFAthKGHygSMfYuwfQ\n4/4piFW6Z5RJltjhR7fO6JJxAyM9pyFbaof/trHHQA+rsgsaQPijPPx0/gm+ufID5vl8gkltamFA\nXX4x5CjU16WT8lRIzldqEmJyngpJrx4n5ytRyLP3w1WWiZ8TfsRQr095nzOGIBWqfyRkylQ6PzPl\nvsXn4OAACwsLdOvWDYMHD0bXrl0hes8xP6Rk/npWiAEnXnA+YB42Qpzu7Qx7C8N0ZZV14lOoWCy8\nmIWNt9WTcjfMfYazVxahqjIXd6Ru6Of9ORKtXdHOzaIosUnVCa26tRCuUgFcrIQQG+kWcpNe82RZ\nCG9fhWT/dgjvXNNbTFm/CWT9xkDZ2McgU4LJlCweZCtwJ1OBhFfJ8NDjfCh0fFMwAKpbCWH76tql\nrfjV35LXyazouuab217/20bMQKjj/45JT4X42G8QRx4Co2dZJMLFAppz5r6VKwRvdNFKRUUtXCuR\nANJXLVrNdqG6hfz6b6lQ3QqW6tyu/lsqYjQ/JPW1gM2hl0QX3onv5s2b2LNnD8LDw/Hvv/+iatWq\nGDBgAAYPHoxWrVoZO07yysZbOZh7IYuzLaC6BfYGVtP5BVJSZflFn1Gowtgz6TjzerA+yyL20jw0\ny3uqKaME8Mi7E9yGjQFbvU6ZxPUmkyQ+loXw5mVIDmyH8N5NvcWUjZqpE16j5kafA9NUX2xMZhrE\nx36H+PQB3sskVXZKAA+bdEL1YWPA1ii7c8bcekmKU+JrfCzL4uzZs9izZw8OHTqEnJwceHh4YPDg\nwQgODoa7u7uRQiWAuv4/ic7Ernt5nO2fNqmCr33t3vv5y+qL/k6mHENPpXEG6fdJvYzw+DU6y7MM\nA4V/AGR9RoKt4W70+F4r08THshBev6BOeA9u6y2mcnBEweQvoGpU/J3WhmbKLzYmOwPiY3sgjtgH\nprDg3QcQ9Tnj1wnyPiOhqlm3zF7X1HeG8/FeN7cUFhbi2LFj2Llzp2YpIH9/fwwdOhSDBg0q8R2h\nhJ9CJYtex1JxKZW7hMxPHRwwqN77Xecoiw/tiScF+L+/0jmD8xlWhVuX56F+7r/FHssyDBStOkLe\ndxRUtTyMGidQRicxy0IY97c64T268+7iYgvk/Xc3WPtqxo1LD1N+sTFPH8LqywlgVEU/mFhAPeC9\nLAeEsyygUHCWajKXOLSKvD5n+oyEqnY9o4dUHhLfe12ki42NRWRkJC5fvgyWZdG4cWMUFhZixowZ\nWLZsGbZs2YK2bdsaKlbyioWQwc6Aauh0KAXP84pudvk0OgMN7ERo7lj2t3zzwbIs1t3MQejlbK1b\nrefI496Z9ACAYVmIL52B+NIZKFp1gKzPSKjqmPdJppdKBeGVaHXC++e+3mIsGDBv1hirhPjADshG\nf1YGQZoXccR+QMCAM/RPJIK8Q1CZ1odk+2qIzx4FFG/cgGMucbyFc874tIes76jye84YSIkT3927\nd/H7779j7969ePr0KRwdHTFixAgMGTIE3t7eAIDr169j2rRpmDVrFi5c0D/OiJSeq5UQvwRUQ89j\nqZo7vwqUwPCIdET2cYKz1Lwm/S1QsPj0fAb2PMjX2jfyA0v859gfeo9lxRKdNziILp+F6PJZKFq0\nhazvSKjqNjJozEajUkEYexaSAzshfPJAbzFFi7Zgnj+GMOkpZzujUEB4P97YUZol4f1bYN76kjdF\nfZhzHEAx50xsFESxUVA0/xCyfqPKzzljYLy7Ojds2IA9e/bg+vXrkEgk6NGjB4YMGYIuXbpAKNT+\nkt29ezemT5+OtLQ0gwdNiuy+l4up5zI521o7S3CwuyMkpVjDzxjdFM/zlBgRkYbYF9yuWQEDLPOz\nw7TsC5CGLdZsZxkB8pb9XHQzC8+WkaJZa/Wv2XpeBovdoPWhUkJ08QzEB3ZC+CxRbzFz/1VeHrqy\nypJZ1kdFOWeMhHeLb+HChfDz88OqVat4jedr0aIFQkJC3jtAUrxh9a1xI12OsFu5mm0xKTKExGTi\nuw/LZg2/4lxJlWH46TROlyygngVl20dV0clNDIsF2zn7FG06c+/gFAigbNUe+T7tILx6Xn0yJ97V\nei3RtRiIrsVA4e0LWd/RUNVvYpT3VGJKBUQxpyE5tBOC5090Finr6zCkgnvznCnm+rHmnGniq06A\nDbxNEGzZ4534YmNj4eHB/2YCT09PeHp6liooUjKLfe1wK0OBv54X3e69/W4emlYT4/8amW4Nvz0P\n8jA9OkNrEG4DOxF+7VwN9exEEJ0/CcHzfzT7WIEAsr6jdT8hw0DZsi3yW3yovvtx/3YIH2rf/Si6\ncQmiG5eg8GqpToCNmhnybfGnUED090lIDv0CQbLu65ev71aV9x5RpnfekUqCYaBs8SHym7cp9o5h\n0c1LEN00g3OmjPBOfC4uLnjy5Alq1aqlc/+TJ09QrVo1WFmV7ewJBBAJGPz8kQM6HUrF45yiLDM3\nJguN7MVo62rcNfzeplSxWHwlG9/d0J5lJLCGBTZ/VBV2EgGgVECy/63W3oddwbrWLP4FGAbKZq2R\n39RfPd5t/3YI72uPdxPdugLRrStlOt4NAKCQQxR9ApJDuyBIfaazCMsIoGjTGbLeI0wyPpFUMqU5\nZ/qOhtKzRdnepVpGeCe+BQsW4MqVK4iKitK5f/jw4fD19cWqVasMFhzhr6qlELs7V0PXI6nIfTXF\nhoIFRkem43RvJ9SuUjaz7GTLVJhwNgN/PtEea/VpkyoI9bHVDLQX/R0BQXLRjRvq1t4o/i/GMFB6\n+yK/SSsIb11Rn8x3r2sVEyZcg3T5Z1A28FafzAaa4USLXAbRueOQHN4FwYtknUVYgQCKD7uqE967\nEjwhhvbmOVPMrEDChGuQJswy/jljIry/DSMjIzF8+HC9+3v16oXdu3cbJChSOo2rihHW3gGjIovW\n8HtRoMLwiHT8GeQIK5FxZ+h/mK3A0FNpuJPFvctMIgC+b+uAoR+80RugUEBy4K3WXrvuYJ2rl/yF\nGQbKxj7Ib+wDQUKcehLn21e1ignv3oB05edQ1vNSn8w857R8J1khRFHHIDm8G4L0FJ1FWKEQirbd\nIOs1HKyL+U3aSyoZhoHSqyXyvVqqz5kDOyC6dUWrmNHOGRPjnfiSk5Ph5uamd7+LiwuSkpIMEhQp\nvT7uUsxtboMVcUVr+N1Il+OTc5nY0tHBaDe7/PWsAKMj05H51mKvLlIBfgmoBl9n7thC0fkTEKQU\ndQOyQiFkfUa+dxyqRs1RMK85BHeuq09mHasYCB/cgnT1XCjrNoKs3yjNKgYlJiuE+MxhiI/8CkHm\nC51FWKEIig49IAsaBtZJ//lDiKmoGjVHQaPmENy9DsmBnRDdvKRVpuicaahOgM1Lec6YCd6Jz9HR\nEQkJCXr3JyQkwM7u/afMIu9vbnMb3EyX48g/Rd2N4Y/y0bSqGDOb2hj0tViWxabbuZh/MUtrdvYW\njmLsCqiG6tZvDXdRyCE5sIO7qUNPgyYGVcOmKJjzXwjux+tdt074KAHSNQugrFMfsr6joGzRFhDw\naBUXFkAceRDio79CkJWhswgrEkPeMQjyoGFgqzm/79shxOhUDZqiIGTlO86ZO5B+V4pzxszwTnyB\ngYHYtm0bgoOD0aJFC86+K1euYNu2bfj4448NHiApOQHD4McODuh6OBW3M4u6Hf8Tmw0vBzG61jLM\nVHIyJYuQmExsv5untW+ghxTr2jpAqmNxVlHUcQheFPUOsCIxZL1HGCSmt6k+aIyC2SsgeJgAyYHt\nEMX9rVVG+PgepGu/hLJWPcj6joTSp4Puk7kgD+LTByE+9jsE2XoSnlgC+Ue9Ie85BGxVJ0O/HUKM\njnvO7IAo7rxWGd7njJniPYA9OTkZAQEBSE5ORmBgoGaowq1bt3Dq1Ck4OzsjIiKi2O5QUrYeZSvQ\n6VAKp/vRVswgorcT6tvpXsOP7+DTFwVKjDydjr+TubNDMAC+8rHFTO8qurtV5TJYzRnBuRYm69wP\nslEz+b2p9yRIvKs+ma+c01tGWcMd8r6joPDtiHsPHqJ+zeoQn9oPyfHfweRk6zyGlVhAHtAX8h6D\nTTaHZlkpDwOUy1JFrw9B4l1IDu6EKFb3jY2AjnPGzOujRJNUp6SkIDQ0FEeOHMHLl+prSDY2NujV\nqxdCQ0Ph4uJitEBJ6UT+W4CPT6ZxVtqubyfCqV5O6iEFb+FzEt9Il2NYRBqe5HAH6FURMdjU0QE9\nilkVXhRxAJY7ilZgYMVi5H27u8xbR4J/7qtP5kt/6S2jcq4BRX4uxAo5mPxcnWVYiSXkXfqpE56t\ng7HCNSsV/Yu+pCpLffA9Z2RKJZRfrAVb1Xy7+Eu1OgPLsnjxQn0x39HR0eSzg5Di/XDzJb64xG2p\ndKtpgd2dtdfwe9dJfDAxH1OiMjRDJl5ztxHi187V4OlQzGrwskJYzRkOQUbRjSCywI8hGzG9BO/G\nsARPH0J8cCdEF8+AYfmfCqylFPIuAyDrFgzYlt2K1+agsnzR81XZ6kN9zvwC0cVInecMC0Devgdk\n4+eWfXA8lapTlmEYODk5wcnJiZJeOTCtcRUMrsdthf35tBBLr+ruttNFxbJYEZeNUZHpWkmvvasE\np3s5FZ/0AIj/OsJJeqxYAnmvYbxjMAZVTQ8UTg1F3rJtkLfpApYp/pRgpdaQ9R2F3FW/QRY8odIl\nPULU58xX6nPmw0Ctc4YBII45DSbTfOdpLnGL78KFC4iLi0N2djZUKu78iwzDYM6cOQYNkBhGvoJF\n0LFUXHlrouitHR0wwKNofJ2uX6+5chWmnsvAgUTtQekTGlljmb8dxO9a/V1WCKvPh0KQVTTGUNZ9\nEGRDp5bi3RgPk/QEkkO/QHTuT+5aa0IRZL1HQN71Y8DasHfGljeVrYXzLpW9Pt48ZwB14mNNsERT\nSfC+qzMzMxODBw/GpUuXwLIsGIYB+6qZ+/rflPjMl1RUtIZfSn7RD5Zp5zLxgZ0ITavpXsPvSY4C\nwyLScSOdmzBFDLCytT3GNuK3Arf49EFO0mMllpD3HFKKd2JcrGstyIInQhRzGlC88Z4FAig69a70\nSY+Qt715zjCvzhlGoYA46jjkfUeZ5c1evLs6Q0NDcf36dfz000+Ii4sDy7IIDw9HbGwsRo0ahaZN\nm+LuXe0Z84n5qGEtxM5OVSF+4389X8liWEQ6XhQotcrHJBei06FUraRX1UKA/d0deSc9FOZDfIQ7\nq4+8S3+wdlVL/B7KgvjAduDtpXJZFcRvjT0khKjpPmeUZnvO8E58f/75J0aNGoWBAwfCxkb9q1cg\nEMDDwwPfffcd3NzcsGDBAqMFSgzD38UCq9pwr0s9zVVi1Ol0yN+49XPn3Vz0Pv4CLwq43dleDiKc\n7u2EdiWY+FoccYAz7o21lELWc3Ap34Hxmcsio4SUF+XtnOHd1ZmRkYHGjRsDAMRi9U0MublFt3gH\nBgZi6dKlBg6PGMOoBuo1/DbdLvr/O58sw/wLWfi/asC8C5n48Zb27ftBtS3xYwcH2IhLcE9UQR4k\nR3/lbJJ3GQDYmO9NIfmLN2v+Xdmv3xDCR3k7Z3gnPmdnZ80QBhsbG9jY2ODevXua/RkZGVAqtbvL\niHla5meH2xlynEsqGoC+OSEXmyEFoJ30Pm9mgwUtbCAo4V284lP7wLzM0jxmLa0g6zGo1HETQsj7\n4p34fH198fffRdM9denSBevWrYOrqytUKhU2bNgAPz8/owRJDE8sYLCtU1V0OpT61kB0bmKTChms\nb2fPufOTt/xcSI7+ztkk7zYQqEJzuhJCTId3n9WECRPg4eGBggL1Le2LFy9G1apVMXnyZEydOhVV\nq1bF8uXLjRYoMTxHSyF2BVSFvjackAGO9XQsXdIDID7xB5jcorGCrJW1esA3IYSYEO8WX5s2bdCm\nTRvN4xo1aiAmJgbx8fEQCoVo0KABRKKyWeyUGE7TapK378XSULFAc0fdwxzeKfclJMf3cDbJug2i\n4QCEEJPj1eLLz8/HtGnTcODAAe7BAgG8vb3h5eVFSa8cq/X2skGv1NSznQ/xiT/A5OVoHrPWNurB\n34QQYmK8Ep9UKsX+/fuRlZX17sKk3PnKxwZSofa1va98Stk6y30JyZ97OZtk3QcBVlVKGyIhhBgM\n72t8LVq0wI0bN4wZCzGR4HrWWNvWDrWshWDAopa1EGvb2iG4Hs8B6m+RHN/DWc2AtbaFPJBae4QQ\n88A78X3zzTc4ePAgNm3aBJlM9u4DeNq8eTOaNm0KFxcXdOzYEefPay96+KZNmzbBz88Prq6uaNWq\nFX79lTtGbNeuXbC3t9f68/qmHKJbcD1r3Bjkiovt8nFjkGupkx5ysiA+8T/OJlnQEEBauhtkCCHE\n0HhfmBs/fjwAYO7cuVi4cCFcXV0hlXJn/GcYBjExMbxfPDw8HPPmzcOqVavQunVrbN68GcHBwYiJ\niUGtWrW0ym/ZsgWLFi3C999/j1atWiE2NhYzZsyAvb09evTooSlnZWWFq1evco61tDTMquOkeJKj\nv4MpyNc8VtnYQ965nwkjIkiz+L4AACAASURBVIQQLt6Jz9HREU5OTgYdkb9+/XoMGzYMo0ePBgCs\nXLkSERER2Lp1K0JDQ7XK//7775pp0wDA3d0dV65cwffff89JfAzD0KK4ppCdCfGpcM4medBQwJJa\ne4QQ88E78R05csSgLyyTyRAXF4fp07mLkAYEBODChQs6jyksLNRquUmlUsTGxkIul2umUsvPz0eT\nJk2gUqng7e2NBQsWoFmzZgaNn2iTHPsNTGFRl7LKzgHygL4mjIgQQrSVaiFaQ0hLS4NSqYSTkxNn\nu5OTE1JSUnQe07lzZ/zyyy+4cuUKWJbF1atXsWPHDsjlcqSlqRc9rF+/Pn744Qfs3r0bmzdvhoWF\nBbp3744HDx4Y/T1VZkxWOsSn9nG2yYOGARbUxUwIMS+8W3zR0dG8yrVt27bUwbxLSEgIkpOT0bVr\nV7AsC2dnZwwdOhTff/89BAJ1Dvfz8+NMnebv74/27dtj48aN+Pbbb/U+95vzjlZ2pamLGid/h7Ws\nUPNYXsUOt2t5ga0A9UqfDW1UJ1xUH1zmUB/FXZbjnfh69eoFhscExenp6e8sAwDVqlWDUChEamoq\nZ3tqaiqcnZ11HiOVSrF+/Xp89913SElJgaurK7Zt2wYbGxs4OjrqPEYoFKJ58+Z4+PBhsfGY+2zi\nZaU0M6szGS9gdeUsZ5uq32h84NXYkKGZRHmYab6sUZ1wUX1wlYf64J34Dh06pLVNqVTin3/+wfbt\n26FSqXTekKKPRCJB8+bNERkZiX79iu76i4yMRJ8+fYo9ViwWo0aNGgCAP/74A926ddO0+N7Gsizi\n4+PRpEkT3rGRkhEf2Q1GXjTERVXVCfKOQSaMiBBC9OOd+Nq1a6d33/Dhw9GjRw+cO3cOHTt25P3i\n06ZNw6RJk+Dj4wN/f39s3boVSUlJGDt2LABg0qRJAICNGzcCAO7fv4/Lly/D19cXmZmZWL9+PW7f\nvo2wsDDNcy5fvhy+vr6oV68esrOzsXHjRsTHx2P16tW84yL8MekpEEdyfxTJeo8AJPwXqiWEkLJk\nkAk2BQIBBgwYgDVr1mDhwoW8jxswYADS09OxcuVKJCcnw9PTE3v27EHt2rUBAE+fPuWUVyqVWL9+\nPe7fvw+xWIx27drhxIkTqFOnjqZMVlYWZsyYgZSUFNja2qJp06Y4evQofHx8DPFWyVvEh3eDUcg1\nj1XVXKDo0NOEERFCSPEMNrN0RkZGqebyHD9+vGZw/NveHkLRsGFDREVFFft833zzDb755psSx0FK\njklLhvjMYc42WZ+RgEhsoogIIeTdeCe+J0+e6NyelZWF8+fPY926dZxli0jFJzn4CxilQvNY5eQG\nRbvuJoyIEELejXfia9q0qd67OlmWha+vL9asWWOwwIh5Y1KfQxR1lLNN1mcUQMtTEULMHO9vqR9+\n+EEr8TEMA3t7e9StWxeNGjUyeHDEfEkO7gSjVGoeq5yrQ9E20IQREUIIP7wT3/Dhw40ZBylHmOSn\nEJ07ztkm6zcGEFJrjxBi/nhPWZaUlFTskkHnz59HcnKyQYIi5k1ycCcYlUrzWOVaC4rWASaMiBBC\n+OP9E/3LL7/E06dPcezYMZ37ly5dipo1a2rG3JGKiUl6AlH0Sc42Wb/R1NojhJQbvFt80dHRCAzU\nfw2nS5cuvOfzJOWXZP92MOwbrb3qdaDw72TCiAghpGR4J760tDRUrVpV7357e3uteTdJxcI8ewxR\nTARnm6zfGEAgNE1AhBBSCrwTn5ubG+Li4vTuj4uL01piiFQskv3bwLCs5rGyZl0ofPlPUUcIIeaA\nd+Lr3bs3du3ahYMHD2rtO3DgAHbv3o3evXsbNDhiPgRPH0J08Qxnm6z/WEDP5OCEEGKueN+REBIS\ngsjISIwZMwaNGjWCl5cXAODWrVtISEhAo0aNMG/ePKMFSkxLfW3vjdZe7XpQttQ/cTkhhJgr3j/X\nbW1tceLECYSEhABQz6P5ei7NOXPm4NSpU7CzszNOlMSkBP/ch+jSX5xt1NojhJRXJboH3crKCvPn\nz8f8+fONFQ8xQ5J92ziPlXUaQNmirWmCIYSQ98T7J3tubq7eiaoB9STWeXl5BgmKmA/BozsQXTnH\n2SYbMBbQM28rIYSYO96Jb8GCBRg2bJje/cOHD8eXX35pkKCI+ZDs38Z5rPTwhLJZa9MEQwghBsA7\n8UVGRqJXr1569/fq1QsRERF695PyR/DgNkRxf3O2UWuPEFLe8U58ycnJcHNz07vfxcUFSUlJBgmK\nmAet1t4HjaFs4muaYAghxEB4Jz5HR0ckJCTo3Z+QkEB3dVYggvvxEF2/wNlGrT1CSEXAO/EFBgZi\n27ZtuHr1qta+K1euYNu2bcXO5UnKF0n4z5zHygZNofTyMVE0hBBiOLyHM8yfPx8nT55EYGAgAgMD\n4enpCUA9gP3UqVNwdnbGwoULjRYoKTuCO9chir/M2UatPUJIRcE78bm4uCAyMhKhoaE4cuQIjh9X\nL0RqY2ODQYMGITQ0FC4uLkYLlJQdyT5ua0/h2QJKzxYmioYQQgyrRAPYnZ2dERYWBpZl8eLFCwDq\na38MtQQqjCqJdyC6ze3OlvUfa6JoCCHE8Eq1eijDMLQSQ0XEsnA9y52EXNHYB6qGTU0UECGEGF6J\nE9+FCxcQFxeH7OxsqFQqzj6GYTBnzhyDBUfKlvDWFUj/ucvZRq09QkhFwzvxZWZmYvDgwbh06RJY\nlgXDMGBfzdb/+t+U+EqHyUyDxYb/oHBqKFj7aqYJgmUh2fMTZ5PC2w+q+k1MEw8hhBgJ78QXGhqK\n69ev46effoKvry+aN2+O8PBw1KlTB2vXrsXVq1fxxx9/GDPWCkuy5ycI71yH5dLpUNVtaJIYmMJC\nCBPvcLZRa48QUhHxTnx//vknRo0ahYEDByI9PR0AIBAI4OHhge+++w5DhgzBggUL8NNPP73jmcib\nmMw0iC6cBgNAmPIMwpRnpg4JwKtre/U8TR0GIYQYHO8B7BkZGWjcuDEAQCwWA1Cv2PBaYGAgTp06\nZeDwKj7xge3AGwu8mgvWqoqpQyCEEKPgnficnZ01QxhsbGxgY2ODe/fuafZnZGRAqVQaPsIKjMlM\ngzjqOBilwtShaBHFxYDJTDN1GIQQYnC8uzp9fX3x999FM/V36dIF69atg6urK1QqFTZs2AA/Pz+j\nBFlRqVt73DtjWYEQSs/mUHToWWZxiM4ehfB2HBjVGz9cWCXEB3ZANvqzMouDEELKAu/EN2HCBOzf\nvx8FBQWwtLTE4sWL0b9/f0yePBkAUK9ePSxfvtxogVZEwvu3wCi4rT1GpQTzMguK1p3LLA7xkV+5\nSQ8Ao1BAeD++zGIghJCywmRmZpb6ApNKpUJ8fDyEQiEaNGgAkahU4+GJGbl37x7q169v6jDMBtWH\nNqoTLqoPrvJQH++VqQQCAby9vQ0VCyGEEGJ0em9uefToUamf9H2OJYQQQoxJb+Lz9fXF+PHjER0d\nzfvJzp07h3HjxtFNLoQQQsyW3q7OkydPYvHixejVqxdcXFzQoUMHNG/eHO7u7rC3twfLssjMzMTj\nx48RFxeHs2fPIiUlBZ06dcLJkyfL8j0QQgghvOlNfC1atEB4eDhu3LiBX375BUePHsXevXsBQLMM\n0eu5OuvUqYMBAwZgxIgR8PLyKoOwCSGEkNJ5580t3t7eWLFiBVasWIHnz5/j7t27yMjIAABUrVoV\nDRs2pAVoCSGElBsluqvTzc0Nbm5uxoqFEEIIMTreU5YRQgghFYHJE9/mzZvRtGlTuLi4oGPHjjh/\n/nyx5Tdt2gQ/Pz+4urqiVatW+PXXX7XKHDhwAP7+/nB2doa/vz8OHTpkrPAJIYSUMyZNfOHh4Zg3\nbx5mz56Ns2fPws/PD8HBwXjy5InO8lu2bMGiRYswZ84cxMTEYP78+QgJCcGxY8c0ZS5evIhx48Yh\nODgYUVFRCA4OxpgxY3D58uWyeluEEELM2HtNWfa+OnfujMaNG2Pt2rWabS1btkTfvn0RGhqqVb5r\n167w8fHBN998o9m2cOFCxMbG4vjx4wCAsWPHIiMjA/v379eU6du3LxwdHbFlyxYjvpuKoTxMN1SW\nqD60UZ1wUX1wlYf6MFmLTyaTIS4uDgEBAZztAQEBuHDhgs5jCgsLYWlpydkmlUoRGxsLuVwOALh0\n6ZLWc3bu3FnvcxJCCKlcTDardFpaGpRKJZycnDjbnZyckJKSovOYzp07Y+fOnejduzdatGiBuLg4\n7NixA3K5HGlpaXB1dUVycnKJnvO1N9cWrOyoLrioPrRRnXBRfXCZQ30U1+osUeJLT0/Hhg0bEBUV\nhdTUVPz444/w8/NDeno6Nm3ahH79+qFhw4bvHbA+ISEhSE5ORteuXcGyLJydnTF06FB8//33EAje\nr/Fq7k3zslIeuinKEtWHNqoTLqoPrvJQH7yzxePHj9GuXTv88MMPkMvlSExMRH5+PgD1QPbw8HBs\n3ryZ9wtXq1YNQqEQqampnO2pqalwdnbWeYxUKsX69evx/PlzXL9+HTdv3kTt2rVhY2MDR0dHAICL\ni0uJnpMQQkjlwjvxhYaGgmVZxMTEYO/evZrpyl7r2bMn/vrrL94vLJFI0Lx5c0RGRnK2R0ZGwt/f\nv9hjxWIxatSoAaFQiD/++APdunXTtPh8fX1L9ZyEEEIqB95dnWfOnMGnn34Kd3d3pKena+2vU6cO\nnj17VqIXnzZtGiZNmgQfHx/4+/tj69atSEpKwtixYwEAkyZNAgBs3LgRAHD//n1cvnwZvr6+yMzM\nxPr163H79m2EhYVpnnPy5Mno2bMn1qxZg6CgIBw+fBhRUVGauz4JIYRUbrwTX2FhIezt7fXuz8rK\nKvF1tgEDBiA9PR0rV65EcnIyPD09sWfPHtSuXRsA8PTpU055pVKJ9evX4/79+xCLxWjXrh1OnDiB\nOnXqaMq8TqBLlizBsmXLULduXWzduhWtWrUqUWyEEEIqJt6Jz9PTE9HR0Rg3bpzO/UeOHEHTpk1L\nHMD48eMxfvx4vc/5poYNGyIqKuqdz9m3b1/07du3xLEQQgip+Hg30aZMmYJ9+/bhv//9r2Z1BpVK\nhbt372L8+PG4fPkypk2bZrRACSGEEEPg3eILDg7G06dPsWzZMixbtgwA8PHHHwMABAIB/vOf/6BH\njx7GiZIQQggxkBKN4/vss88QHByMgwcP4uHDh1CpVKhbty569+4Nd3d3I4VICCGEGE6JZ26pWbMm\npk6daoxYCCGEEKPjfY0vJiYGq1ev1rt/zZo1uHjxokGCIoQQQoyFd4tvxYoVxQ5nuHnzJs6dO4c/\n/vjDIIERQgghxsC7xXf9+nX4+fnp3e/r64tr164ZJChCCCHEWHgnvry8PDAMU2yZnJyc9w6IEEII\nMSbeie+DDz7A6dOn9e4/deoUPDw8DBIUIYQQYiy8E9+oUaNw8uRJzJkzRzOAHVAvVRQSEoLTp09j\n5MiRRgmSEEIIMRTeN7dMmDABN27cwKZNm7B582bNMj8pKSlgWRbDhg3DlClTjBYoIYQQYgglGse3\ndu1azQD2xMREAIC7uzv69u2Ldu3aGSM+QgghxKBKPIC9ffv2aN++vTFiIYQQQoyuZOsIEUIIIeUc\n7xYfy7LYtm0bdu7cicTERGRmZmqVYRgGaWlpBg2QEEIIMSTeie+rr77C+vXr4e3tjUGDBhU7iwsh\nhBBirngnvl9//RV9+vTBtm3bjBgOIYQQYly8r/EVFBTgo48+MmIohBBCiPHxTnwdOnTAlStXjBkL\nIYQQYnS8E9+qVatw+fJl/Pe//0VKSooxYyKEEEKMhvc1vhYtWoBlWSxbtgzLli2DWCyGQMDNmwzD\n4NmzZwYPkhBCCDEU3omvf//+71ydgRBCCDF3vBNfWFiYMeMghBBCygTN3EIIIaRSKfFcnc+ePcO1\na9eQnZ0NlUqltX/o0KEGCYwQQggxBt6Jr7CwENOmTcO+ffugUqnAMAxYlgUAzrU/SnyEEELMGe+u\nzqVLl2L//v1YuHAhDh8+DJZlERYWhn379iEgIADe3t6Ijo42ZqyEEELIe+Od+Pbt24chQ4Zg1qxZ\n8PT0BAC4ubnho48+wt69e2FlZYWtW7caLVBCCCHEEHgnvpSUFPj6+gIARCJ1D2lBQQEAdVdn3759\ncfDgQSOESAghhBgO78Tn6OiI7OxsAICNjQ2kUikePXqk2S+Xy5Gbm2v4CAkhhBAD4n1zi7e3N2Jj\nYwGoW3ht27ZFWFgYmjVrBpVKhZ9++gne3t5GC5QQQggxBN4tvtGjR0OhUGi6N7/++mvk5OQgKCgI\nvXr1Ql5eHpYuXWq0QAkhhBBD4N3i69GjB3r06KF57OnpiatXryIqKgpCoRCtW7emxWkJIYSYvRIP\nYH+Tra0tgoKCDBULIYQQYnQlTnyFhYX4999/kZmZqRnA/iYfHx+DBEYIIYQYA+/El5GRgQULFiA8\nPBxyuVxrP8uyYBgG6enpBg2QEEIIMSTeiW/q1Kn4888/8fHHH8PHxwe2trbGjIsQQggxCt6J78yZ\nM5g8eTKWLVtmzHgIIYQQo+I9nKFatWqoW7euMWMhhBBCjI534hs7diz+97//QalUGjSAzZs3o2nT\npnBxcUHHjh1x/vz5Ysvv3bsX7dq1g5ubGxo0aICJEyciOTlZs3/Xrl2wt7fX+vN6/CEhhJDKjXdX\n5+zZs1FYWIj27dtjyJAhqF69OoRCoVa5/v37837x8PBwzJs3D6tWrULr1q2xefNmBAcHIyYmBrVq\n1dIqHxMTg0mTJmHx4sUICgpCamoqZs+ejQkTJnDmCbWyssLVq1c5x1paWvKOixBCSMXFO/E9ffoU\nERERuH37NkJDQ3WWYRimRIlv/fr1GDZsGEaPHg0AWLlyJSIiIrB161adr3Hp0iVUr14d06ZNAwC4\nu7tj4sSJmDt3rlYcLi4uvOMghBBSefBOfJ988glu3ryJWbNmGeSuTplMhri4OEyfPp2zPSAgABcu\nXNB5jL+/P77++mscO3YM3bt3R3p6OsLDwxEYGMgpl5+fjyZNmkClUsHb2xsLFixAs2bN3iteQggh\nFQPvxHfx4kXMmDEDCxYsMMgLp6WlQalUwsnJibPdyckJKSkpOo/x8/PDli1bMHHiROTn50OhUKBT\np04ICwvTlKlfvz5++OEHNGnSBDk5Ofjxxx/RvXt3nDt3DvXq1TNI7IQQQsov3onP2dnZ5HNxJiQk\nYO7cuQgJCUFAQACSk5Px5ZdfYubMmdi4cSMAdXL08/PTHOPv74/27dtj48aN+Pbbb/U+971794we\nf3lBdcFF9aGN6oSL6oPLHOqjfv36evfxTnzTp0/Hpk2bMHLkSNjY2Lx3UNWqVYNQKERqaipne2pq\nKpydnXUes3r1arRs2RKffvopAKBJkyawsrJCjx498NVXX6FGjRpaxwiFQjRv3hwPHz4sNp7iKqky\nuXfvHtXFG6g+tFGdcFF9cJWH+uCd+HJyciAWi9GiRQv07dsXNWrU0Lqrk2EYTVJ6F4lEgubNmyMy\nMhL9+vXTbI+MjESfPn10HpOfn6/1mq8fq1QqncewLIv4+Hg0adKEV1yEEEIqNt6Jb9GiRZp/b926\nVWeZkiQ+AJg2bRomTZoEHx8f+Pv7Y+vWrUhKSsLYsWMBAJMmTQIATTdm9+7dMWPGDGzZsgWdO3dG\nUlIS5s+fj2bNmmmGPyxfvhy+vr6oV68esrOzsXHjRsTHx2P16tW84yKEEFJx8U58165dM/iLDxgw\nAOnp6Vi5ciWSk5Ph6emJPXv2oHbt2gDUQyjeNHz4cOTk5GDTpk344osvYGtriw4dOnCSclZWFmbM\nmIGUlBTY2tqiadOmOHr0KK0aQQghBADAZGZmaq8t9BaZTIZLly7B1dWV7oys4MpD/3xZovrQRnXC\nRfXBVR7qg9eUZSKRCP369cPp06eNHQ8hhBBiVLwSn0AgQO3atZGTk2PseAghhBCj4j1J9eTJk7Ft\n2zat4QeEEEJIecL75pa8vDxYWVmhZcuWCAoKgru7O6RSKadMSe/qJIQQQspaqYYz/P777zrLUOIj\nhBBi7kw6nIEQQggpa7wT3+uxdYQQQkh5xjvxvZaZmYkzZ87gn3/+AaBOiB999JHJJ7AmhBBC+ChR\n4vv++++xfPlyFBYWgmWLxr1bWlpi/vz5dH2PEEKI2eOd+Hbs2IFFixahY8eOmDJlCho2bAgAuHPn\nDn788UcsWrQIDg4OGDlypNGCJYQQQt4X78T3448/omPHjti3bx8YhtFsd3d3R9euXdGvXz+EhYVR\n4iOEEGLWeA9gf/jwIYKCgjhJ7zWGYdCrV693rnlHCCGEmBrvFp+dnR0SExP17k9MTISdnZ0hYjIr\nCoUCubm5pg6jzFhaWiIrK8vUYZgNiUQChUIBkajE94ERQswU77O5e/fu2LRpE5o2bYpBgwZpWn4s\ny2Lv3r3YvHkzhg4darRATUGhUODly5ewt7fX2dKtiCwsLGBpaWnqMMyGRCLBy5cvYWNjQ8mPkAqC\n17JEAJCeno5evXohISEBjo6O8PDwAKDuAn3x4gUaNWqEI0eOwMHBwagBl6WsrCzY2tpWmqQHAAUF\nBZT43lBQUAALCwtkZ2dXyB6N0igPy86UJaoPrvJQH7x/wlatWhWRkZH4+eefcfLkSTx58gQA4O3t\njW7dumH06NGwsLAwWqCmUpmSHtGNPgOEVCx6E9+CBQswePBgNGvWDADw5MkTODo6YvLkyZg8eXKZ\nBUgIIYQYkt67OsPCwnD37l3N42bNmuHw4cNlEhQhhBBiLHoTn4uLCx48eKB5/OZMLaRyCQoKQkhI\nSImO8fb2xrp164wUESGElJ7ers4ePXrg22+/xbFjx2BrawsAWLVqFXbs2KH3yRiGwcGDBw0fJSmR\noKAgeHl5YeXKlQZ5vl9++aXEdzRGRkbCysrKIK9vTIauK0KI+dP7bbZs2TJUr14d0dHRSE1NBcMw\nyMnJgUDAe8w7MXNyuRxisfid5Upzp66jo2NpQiKEEKPTm8WkUilCQkKwf/9+REdHg2VZhIaG4vz5\n88X+IVx7H+TCe08SHH7+F957krD3gXEHw0+ZMgXR0dHYtGkT7O3tYW9vj8ePHyMqKgr29vY4ceIE\nAgIC4OTkhIiICDx69AhDhw5FgwYNUL16dQQGBuL48eOc53y7q9Pb2xsrV67EzJkzUatWLXh5eWHt\n2rWcY97u6rS3t8e2bdswevRoVK9eHc2aNdNa0Pjy5cvo0KEDXFxc0L59e5w4cQL29vaIiorS+36j\no6PRpUsX1KhRA7Vr10ZAQABu3bql2X/hwgX07NkTbm5u8PT0xKxZs5CdnV1sXRFCKjZe/VcymQyH\nDh0qF11Xxmb/87+lPvZJrhITzmZiwtlM3sdkjq1RotdYvnw5Hjx4gPr16+Orr74CoG59vV5GatGi\nRViyZAk8PDxQpUoVPH/+HIGBgfjiiy8glUqxZ88ejBw5EtHR0WjQoIHe19mwYYNmRY6TJ09i7ty5\naN26Nfz8/PQe8+233yI0NBShoaHYuXMnPvnkE3z44YeoVasWcnJyMHjwYHTq1AkbN25EUlIS5s+f\nX+x7VSgUGDZsGEaOHIlNmzZBLpfj2rVrEAqFAID4+HgMGDAA8+bNw7p165CRkYH58+fjk08+wY4d\nO/TWFSGkYuPVbykSidC/f3/ExsYaOx7ynuzs7CAWi2FlZQUXFxe4uLhoEgEAzJ07FwEBAXB3d4ej\noyO8vb0xbtw4NG7cGB4eHpg5cyaaNWuGAwcOFPs6AQEBmDhxIjw8PDBp0iR4eHjgr7/+KvaYwYMH\nY/DgwfDw8MDChQshEok0vQR79+6FUqnEunXr4OnpiU6dOmH27NnFPt/Lly+RlZWF7t27o27dumjQ\noAGCg4M1K4esXbsW/fv3x/Tp01GvXj20atUKq1atwsGDB5GamvrOuiKEVEy8WnwCgQC1a9dGTk6O\nseMhRtaiRQvO49zcXKxYsQJ//vknkpKSIJfLUVhYiMaNGxf7PG/vd3V1RWpqKu9jRCIRqlWrpjnm\n7t278PT0hFQq1ZRp1apVsc/n4OCAYcOG4eOPP0bHjh3RoUMH9O3bF7Vq1QIAXLt2DQ8fPsS+ffs0\nx7y+O/nRo0dwcnIq9vkJIRUT7ztVJk+ejG3btr3zy42YN2tra87jL7/8Evv378eCBQtw5MgRRERE\nwMfHBzKZrNjnefumGIZh3jnkpTTHvMuGDRtw6tQpfPjhhzh27Bh8fX0REREBAFCpVBg1ahSioqI0\nf86dO4crV67A29v7vV6XEFJ+8b5HPS8vD1ZWVmjZsiWCgoLg7u7O+XUOqL/IKvoq7CW55rb3QS4+\njc5CvrLoy10qZLC2rR2C61kXc+T7kUgkUCqVvMrGxMRgyJAh6Nu3LwAgMzMTjx49Qr169YwWny4N\nGjTAr7/+ivz8fM3nim/Xure3N7y9vTFz5kwMHDgQv/76Kzp37oxmzZrh9u3bmnlldSlJXRFCKgbe\niW/RokWaf799N95rlSHxlcTr5PZ17Es8zVWiprUQX/nYGDXpAUDt2rURGxuLx48fo0qVKsUOR6hX\nrx4OHz6Mnj17QiwWY9myZSgsLDRqfLoMHDgQS5YswYwZMzBr1iwkJSVh9erVAPTPlZmYmIht27ah\nR48ecHNzQ2JiIuLj4zFu3DgAwIwZMxAYGIjPPvsMY8aMgY2NDe7evYvjx4/ju+++A6C7rmjIDiEV\nG+/Ed+3aNWPGUWEF17M2eqJ72/Tp0zFlyhS0bt0a+fn5xf7fLV26FNOnT0fPnj1hb2+P8ePHQ6FQ\nlGG0ajY2Nvjtt98wa9YsdOjQAQ0bNsTcuXMxevRovatFWFlZ4f79+xgzZgzS0tLg7OyM4OBgzJw5\nEwDQpEkTHD16FEuWLEGvXr2gVCrh7u6OoKAgzXPoqqs6deqUyXsmhJgG72WJKqOsrKxKtxSNOS1L\ndOTIEYwYMQL3799HBjM4iwAAH89JREFUtWrVTBLD6/qojJ8FfcrDsjNlieqDqzzUR4lX1nzw4AHO\nnTuH1NRUBAcHo06dOpDJZEhOToaLiwskEokx4iSVwO7du+Hu7o4aNWrg9u3bmD9/Prp3726ypEcI\nqZh4Jz6VSoXPPvsMO3fuBMuyYBgGvr6+msTXtm1bhISEYPr06caMl1Rgqamp+Oabb5CcnAxnZ2d0\n69aNc22ZEEIMgfdV/FWrVuGXX37BwoULcfLkSc5t6FWqVEHv3r1p2SLyXmbMmIEbN24gJSUFN2/e\nxKpVq2BjY2PqsAghFQzvxLdr1y6MGDECs2fP1nl7uJeXF2cZI0IIIcQc8U58z549g4+Pj979UqmU\nZnYhhBBi9ngnPmdnZ81Ex7rExcVppooihBBCzBXvxNenTx9s3bqV0535emDxyZMn8dtvv6Ffv36G\nj5AQQggxIN6Jb968eahZsyY6dOiACRMmgGEYrF69Gl26dMHgwYPRpEkTzJo1y5ixEkIIIe+Nd+Kz\ntbXFiRMnMGvWLKSkpMDS0hIxMTHIzc3FvHnzcPToUa25OwkhhBBzU6IB7JaWlpg9e/Y710kjhBBC\nzNU7W3wFBQUIDw/HmjVrsH37diQlJRk0gM2bN6Np06ZwcXFBx44dNQuT6rN37160a9cObm5uaNCg\nASZOnIjk5GROmQMHDsDf3x/Ozs7w9/fHoUOHDBqzuQsKCkJISIhBnzMqKgr29vZIS0sz6POa6nUI\nIZVXsYnv+fPnaNOmDcaPH4+vv/4aM2fOhI+PD6Kiogzy4uHh4Zg3bx5mz56Ns2fPws/PD8HBwXjy\n5InO8jExMZg0aRKGDh2Kv//+G7t27UJCQgImTJigKXPx4kWMGzcOwcHBiIqKQnBwMMaMGYPLly8b\nJGZCCCHlW7GJb8mSJfjnn38wdepU/P777/jmm29gaWmJuXPnGuTF169fj2HDhmH06NFo2LAhVq5c\nCRcXF2zdulVn+UuXLqF69eqYNm0a3N3d4evri4kTJ3LWbQsLC0P79u3x+eefo2HDhvj888/Rrl07\nhIWFGSTm0mAy02C57FMwmcZvxUyZMgXR0dHYtGkT7O3tYW9vj8ePHwMAEhISMGjQINSsWRMffPAB\n/u///o/TWo6Pj8fAgQNRq1Yt1KhRA23btsXZs2fx+PFj9O7dG4B6GSN7e3tMmTJF5+vL5XLMmTMH\njRo1grOzMxo3bsyZdkwmkyE0NBReXl5wc3NDp06dNAvHluR1CCGktIq9xnfmzBkMHToUS5Ys0Wxz\ndnbG+PHj8e+//6JGDf6Lsr5NJpMhLi5Oa27PgIAAXLhwQecx/v7++Prrr3Hs2DF0794d6enpCA8P\nR2BgoKbMpUuXMHHiRM5xnTt3xk8//VTqWN9UZfRHpT5WNOPjEh+Ts/1MicovX74cDx48QP369fHV\nV18BABwdHZGUlISePXti5MiRWLx4MeRyORYvXoxhw4bh5MmTEAgEmDBhAjw9PREREQGRSIT4+HhY\nWlqiZs2a2LFjB0aNGoWYmBg4ODjoXcHhxx9/xJEjR7BlyxbUrl0bz549w7179zT7p02bhkePHmHT\npk2oUaMGTpw4gSFDhuD06dPw8vLi/TqEEFJaxSa+5ORk+Pv7c7a1bt0aLMvi6dOn75X40tLSoFQq\n4eTkxNnu5OSElJQUncf4+flhy5YtmDhxIvLz86FQKNCpUydOay45OblEz/nam1/Or1laWsLCwoKz\nrUqxz2J4BQUFJSpvYWEBoVAIiUSiWUZHLpdj48aN8PLywvz58zVlv//+ezRq1AgxMTFo2bIl/vnn\nH0yaNAm1a9cGAFSvXl1zvLW1ek1BGxsbzfPqii0xMRF169ZFy5YtwTAMnJyc0KxZMxQUFCAxMRH/\n+9//cOnSJdSsWRMAMGrUKJw+fRqbN2/GihUreL9OWSooKEB2dvY7P0OVia7zpTKj+uAyh/oobmmk\nYhOfUqnU+sX9+rEpvowSEhIwd+5chISEICAgAMnJyfjyyy8xc+ZMbNy48b2eW1clZWVlmbzFUZrX\nFwgEEIlEnGPj4+MR8//t3X1czXf/wPFXKspoJTlJN9INikSmsglhpK1UJqJZRMa13A5tu2KKtFrS\nFdu1Mhlzm5u5uS6NCblbzIxrLndXwzDlLtRCnXN+f/TrO0fRWZvO+H6ej0d/nM/35nPzPZ33+Xw+\n3/P9HDqEg4NDtf2vXLlC9+7dmTBhAlOnTiU7O5uePXsSEBCAs7MzgLTclJGR0RPLFB4eTlBQEC+/\n/DK+vr7069ePfv360aBBA06dOoVaraZnz54ax9y/fx8fHx+MjIy0zqe+VK3HZ2JiIp5M9P+ehfXW\n6pNoD03PQnvU+nOG8+fPa8yh3blzB6isXJMm1fs/T3qe58PMzc3R19fn2rVrGunXrl2jRYsWNR6T\nkpJCly5diI6OBipX2G7cuDF+fn7ExsbSqlUrFArF7zqnXKhUKl599VWNYesqVT3kmJgYAgMD2bt3\nL7t27SIxMZGUlBTCw8O1zsfd3Z3jx4+za9cu9uzZw9tvv02HDh3YtGkTKpUKPT09du3ahaGhocZx\nf4UgJwiCPNQa+BISEkhISKiWPn36dI3XVWv03bx5U6uMGzZsiLu7O7m5uRqPOsvNzSUgIKDGY8rK\nytDX19dIq3qtUqkAeOmll8jNzZWCY9U5Hx2yravfM+fWcFkKhnv/hV5FhZSmNjCg3MefByMn/ynl\nqTHfhg1RKpUaaZ06dWLjxo3Y2NhUCzoPa9OmDS4uLowbN44pU6awfPlywsPDpZ7Yo+etSdOmTQkM\nDCQwMJCwsDD69u1LQUEBbm5uqNVqCgsL8fHxeWzZtc1HEAShLp4Y+BYtWvRUM58wYQJRUVF4eHjg\n6enJ559/ztWrV4mIiAAgKioKQBrGHDBgABMnTmTJkiX06dOHq1evEhMTQ6dOnaRhqHHjxjFw4EAW\nLFiAv78/W7duJS8vj+3btz/VutRE/9xJjaAHoFdRgf65H59qvra2tnz33XdcuHCBJk2aYGZmRmRk\nJMuWLSMiIoJJkybRvHlzzp8/z8aNG4mPj8fAwIC///3v+Pn54ejoyLVr1zh06JDUg7exsUFPT4+c\nnBz8/PwwMjKqscefnp6OpaUlHTt2xNDQkHXr1mFiYoKVlRWNGzdmyJAhjB8/nrlz59KpUydu3brF\nvn37sLOzIyAgQOt8BEEQ6uqJgS8sLOypZh4cHMzNmzdJSkqisLCQ9u3bs3btWunmikuXLmnsP3z4\ncEpKSsjIyOCDDz7AxMQEHx8fjdvlqwJofHw88+bNw97ens8//5yuXbs+1brUpCwus97zBHjnnXd4\n++238fLyoqysjB9++AE7OztycnL48MMPCQkJ4f79+1hbW9O7d2/pBp7i4mImTpxIUVERzZo1o3//\n/sTFxQGVN7rExMQQHx9PdHQ0Q4cOrfEnIk2bNiUtLY2CggL09PTo2LEj69ato3HjxkDll6nk5GRi\nY2O5cuUKZmZmdOnShR49evyufARBEOpKr7i4WF37bvJ0+/Zt6c5Cuai6mUOoVNUecnwvPM6zcPNC\nfRLtoelZaA+tH1ItCIIgCM8DEfgEQRAEWRGBTxAEQZAVEfgEQRAEWRGBTxAEQZAVEfgEQRAEWRGB\n7wkMDAwoLS1FrRa/+JArtVpNaWkpBga1PuRIEIRnhPhvfoIXXniB+/fvS88nlYM7d+5gYmKi62L8\nZRQXF2NpaVltlQ5BEJ5dIvDVolGjRrL60CsqKhKrEDykqKhIVtdfEORADHUKgiAIsiICnyAIgiAr\nIvAJgiAIsiICnyAIgiArYnUGQRAEQVZEj08QBEGQFRH4BEEQBFkRgU8QBEGQFRH4BEEQBFkRgU8Q\nBEGQFdkGvszMTNzc3FAoFPTs2ZMDBw7oukj1IiUlhd69e2NjY4ODgwOhoaGcPHlSYx+1Wk1CQgLt\n2rXD0tISf39//vvf/+qoxPUrJSUFU1NT3n33XSlNju1x9epVxo0bh4ODAwqFAk9PT/bt2ydtl1Ob\nKJVK4uPjpc8LNzc34uPjqaiokPZ53ttj//79DB06lPbt22NqasqXX36psV2b+hcXFzN27FhsbW2x\ntbVl7NixFBcX12c1JLIMfBs2bGDmzJlMnTqVvXv30q1bN9544w1+/vlnXRftqdu3bx+jR48mJyeH\nzZs3Y2BgwKBBg7h165a0z8KFC1m0aBGJiYns2rULCwsLgoKCuHv3rg5L/vQdPnyYrKwsXF1dNdLl\n1h7FxcX0798ftVrN2rVr+fbbb/noo4+wsLCQ9pFTm6SmppKZmUliYiL5+fnMnz+fjIwMUlJSpH2e\n9/YoLS3FxcWF+fPnY2xsXG27NvWPjIzk+PHjZGdnk52dzfHjx4mKiqrPakhk+Tu+Pn364OrqSlpa\nmpTWpUsXAgMDmTVrlg5LVv9KSkqwtbXlyy+/xM/PD7VaTbt27RgzZgzTpk0DoKysDCcnJ+Li4oiI\niNBxiZ+O27dv07NnT9LS0khMTMTFxYWkpCRZtsecOXPYv38/OTk5NW6XW5uEhoZiZmbGp59+KqWN\nGzeOW7dusWbNGtm1R6tWrfjoo48YPnw4oN374fTp03h6erJ9+3a8vLwAOHjwIH5+fhw+fBgnJ6d6\nrYPsenwPHjzg2LFj+Pr6aqT7+vry7bff6qhUulNSUoJKpcLU1BSACxcuUFhYqNE+xsbGdO/e/blu\nn0mTJhEYGIiPj49GuhzbY9u2bXh4eBAREYGjoyOvvPIKn332mbQupdzaxMvLi3379nHmzBkATp06\nRV5eHv369QPk1x6P0qb++fn5NGnSBE9PT2kfLy8vXnjhBZ20keyWJbpx4wZKpVJj2AbAwsKCoqIi\nHZVKd2bOnEnHjh3p1q0bAIWFhQA1ts8vv/xS7+WrD8uWLaOgoIDPPvus2jY5tsf58+dZsmQJ48eP\nZ9KkSZw4cYIZM2YAMHbsWNm1yaRJkygpKcHT0xN9fX0qKiqYNm0akZGRgDzfIw/Tpv5FRUWYm5uj\np6cnbdfT06N58+Y6+dyVXeATfvPee+9x6NAhtm/fjr6+vq6LoxNnz55lzpw5bN++HUNDQ10X5y9B\npVLRuXNnadi/U6dOFBQUkJmZydixY3Vcuvq3YcMGVq9eTWZmJu3atePEiRPMnDkTW1tb3nzzTV0X\nT6gD2Q11mpubo6+vz7Vr1zTSr127RosWLXRUqvoXExPD+vXr2bx5M61bt5bSFQoFgGzaJz8/nxs3\nbuDl5YW5uTnm5ubs37+fzMxMzM3NadasGSCf9oDK90Dbtm010pydnbl06ZK0HeTTJrGxsfztb38j\nJCQEV1dXhg4dyoQJE1iwYAEgv/Z4lDb1b9GiBTdu3JCGy6FybvD69es6aSPZBb6GDRvi7u5Obm6u\nRnpubq7G+PPzbMaMGVLQc3Z21thmZ2eHQqHQaJ979+5x8ODB57J9/P39OXDgAHl5edJf586dCQkJ\nIS8vD0dHR1m1B1TOvZw7d04j7dy5c9jY2ADye4/8+uuv1UZE9PX1UalUgPza41Ha1L9bt26UlJSQ\nn58v7ZOfn09paalO2kh/5syZs+s9Vx1r2rQpCQkJWFpaYmRkRFJSEgcOHCA9PZ0XX3xR18V7qqZN\nm8bq1avJysrC2tqa0tJSSktLgcovBXp6eiiVSlJTU3FwcECpVPL+++9TWFhIamoqjRo10nEN/lxG\nRkZYWFho/K1btw5bW1uGDx8uu/YAsLa2JjExkQYNGmBpacmePXuIj49n8uTJeHh4yK5NTp8+zZo1\na3B0dMTQ0JC8vDzi4uIIDg6mT58+smiPkpISTp06RWFhIcuXL8fFxQUTExMePHjAiy++WGv9mzdv\nzpEjR8jOzqZjx45cvnyZyZMn06VLF538pEGWP2eAyh+wL1y4kMLCQtq3b8+8efN4+eWXdV2sp67q\n7s1HzZgxg5iYGKByCGL+/PlkZWVRXFyMh4cHycnJuLi41GdRdcbf31/6OQPIsz1ycnKYM2cO586d\nw9ramjFjxhAVFSXdnCCnNrl79y5z585l69atXL9+HYVCQUhICNOnT8fIyAh4/tsjLy+P119/vVr6\nsGHD+OSTT7Sqf3FxMdOnT+ff//43AH5+fnz00UeP/Ux6mmQb+ARBEAR5kt0cnyAIgiBvIvAJgiAI\nsiICnyAIgiArIvAJgiAIsiICnyAIgiArIvAJgiAIsiICn/CX1bdvX0JCQup07OzZs6VHKQmaRo0a\nxUsvvVSveX7++eeYmppKDzQWBF0SgU/QiqmpqVZ/j67MLPwx+/fvJyEhgZKSEl0XRdCBO3fukJCQ\nwMGDB3VdlOeK+AG7oJU1a9ZovM7KyuLIkSOkp6drpHt6emo89PqPePDgAXp6enVaNaGiogKlUvnM\nPy4qKSmJuXPncvr06T+tB1teXo5araZhw4Z/yvm0oVQqKS8vl550Imjn8uXLuLq6MmvWLCZPnqzr\n4jw3xLJEglZCQ0M1Xu/evZujR49WS3+ciooKVCrV7/qw/SMfzAYGBhgYiLd3TXSx/JK+vv4zufSV\nSqXiwYMHImA/Z8RQp/CnO3PmDKampixevJhFixbh7u6OQqHghx9+ACAlJYVXX32VNm3aoFAoePnl\nl1m5cmW18zw6x/fweTMyMujUqRMKhYJ+/fpx/PhxjWNrmuNzdnYmLCyMvXv30qtXLxQKBZ07d2b9\n+vXV8j527BgDBgzA0tKSDh06kJqaypIlS7Sap7p9+7a0wG+LFi1wcHDg9ddf13gyPVQ+nT44OBhb\nW1tatmzJwIEDNYa0Zs+ezdy5cwFo27atNJx8+PDhP5T3o3N8s2fPfuzQ9cO9DJVKRXp6Ol5eXigU\nCpycnJg4cSLFxcVPbA+oeY6vb9++vPLKK/znP//Bz88PS0tLXFxcWLx4ca3ng9+u5zfffEOPHj1Q\nKBS89NJLNV7Pe/fuMXfuXNzd3WnRogWurq7ExsZy7949jX1MTU2ZOXMma9askeq5bds2aZ/Vq1fj\n6+uLlZUVdnZ2+Pn5kZOTo5FXTk4OAwYMwMrKCmtra4YMGcLJkyc19hk1ahS2trb8/PPPhIaG0qpV\nKxwdHZkzZ4606sOZM2dwdXUF4MMPP6zxmgh1I74SC0/NF198wb179xg5ciTGxsY0b94cgEWLFjFo\n0CAGDx6MUqlk69atjB8/HrVazfDhw2s976pVq7h//z6RkZEolUoWLlzIm2++yXfffVdrr+LcuXNE\nRkYycuRIwsLCWLZsGWPGjKFz5860adMGgAsXLhAQEEDDhg2ZMmUKRkZGZGVlYWxsrFW9o6OjycnJ\nYcyYMTg5OVFcXEx+fj4nT56UVrrPzc1lyJAheHh4MH36dBo0aMCqVasIDAxky5YteHp6EhwczE8/\n/cRXX31FUlISJiYmAFI565r3o4KDg2nfvr1G2uHDh8nMzJSuGcCECRPIzs5m+PDhREVFcfHiRT77\n7DOOHTvGjh076tRDv3XrFkOGDCEoKIjBgwezfv163nvvPTp06ICPj0+tx589e5aIiAhGjRrFsGHD\nWL16NZGRkTRq1IjXXnsNqBxmDQ0N5ciRI4wcORJnZ2dOnjzJJ598Iq288LDdu3eTnZ1NZGQkFhYW\nUnvHx8eTnJyMt7c3MTExGBoacvToUXbv3k3//v0BWLFiBe+88w79+vVj9uzZ3Lt3jyVLljBgwAD2\n7NmDvb29lE9FRQUhISF4e3szZ84cdu7cSUpKCm3atGHEiBFYWlqSmJjIjBkzCA4OlvJwdHT83e0s\naBKBT3hqrly5wtGjRzU+PAFOnDhB48aNpdfjxo3D39+f9PR0rQJfYWEhR44ckQKBnZ0dERER5OXl\n0atXrycee+bMGXbu3EnXrl0BeO2113Bzc2PlypV88MEHQGWP9O7du+zbt0/6xh0WFkaXLl1qLZta\nrebrr78mMjKSuLi4GvdRKpVMnDiR3r17s3btWil91KhRdO/enfj4eLZs2YKbmxsdOnTgq6++IiAg\noNY5Pm3yrombmxtubm7S619++YXY2Fg6derE1KlTAdizZw+rVq1i6dKlBAUFSfv26tWLwMBA1q9f\nz7Bhw7TOs8rly5c1zhkWFoarqysrVqzQOvAtX75cWjlg5MiRdO/endjYWPz9/dHT02PlypXk5eWx\nfft2jeDfoUMHoqOj2b9/v8bKLGfPnuXAgQMai/GePn2ajz/+mMDAQJYuXUqDBr8NllUtrnr79m1i\nYmIYNWoUH3/8sbQ9LCyMrl27kpyczKJFi6T0X3/9leHDhzNx4kSg8vp7e3uzYsUKRowYgYmJCa+9\n9hozZsygY8eOWk8rCLUTQ53CUxMYGFgt6AFS0CsvL+fWrVvcvHmTHj16cOrUKY2hp8cJCgqSgh6A\nt7c3AOfPn6/1WFdXVynoAVhZWdG6dWuNY7/55hu8vb2loAfQvHlzjQ/8x9HT06Np06YcPnyYq1ev\n1rjP0aNHuXjxIm+88QY3btyQ/kpLS+nVqxeHDh2ivLy81rzqkndt7t+/T3h4OBUVFaxYsUKa29q0\naRNmZmb4+PholLlDhw6YmJiQl5dXp/xMTEwYNGiQ9NrY2Bh3d3etriVUrh1Y1bMDeOGFFxgxYgQF\nBQWcPXtWKruLiwsODg4aZa8KrI+W/ZVXXqm2Av3mzZtRq9XMmDFDI+gB0lJNO3fu5O7du4SEhGjk\no6enR7du3Wpso5EjR2qcx8vLS+u6C3UnenzCU/PwsM7DNm3aREpKCj/++CNKpVJj2927d2u9kcDa\n2lrjddV6XtrMNT16bNXxVceqVCouX75cY8/xSUOMD4uLiyM6OhoXFxfc3d3p27cvoaGhODg4AEir\nm48ZM+ax57h9+3aNXxr+aN61mTZtGt9//z0bNmyQVlyvKvOtW7cee57r16//7rJC5fWoChxVTE1N\nuXTpklbH29vbVzu+aijw4sWLODs7c+7cOS5cuKB12Wt63/7000/o6+vj7Oz82LJUXdeBAwfWuP3h\nUQ6AJk2aVFuL7uH3ovD0iMAnPDU1BbA9e/bw1ltv0aNHD1JTU7G0tMTQ0JBt27aRkZEhTew/yePm\n8aqGnJ7WsdoKDQ3Fx8eHf/3rX+zatYvFixeTmppKRkYGgYGBUh3nzp2r0at82MM92j8z7yfJzMxk\n+fLlxMXF0bNnT41tKpUKS0tLPv300xqPbdasWZ3K+2jvqcqfeT1UKhUdO3Z87PCvlZWVxuu63sFZ\ndV0fnRut8mhd66PuQs1E4BPq1aZNmzAxMWHDhg0at9Xv2LFDh6X6TYMGDWjVqhUFBQXVttWU9jgt\nW7Zk9OjRjB49mps3b+Lr60tiYiKBgYFSj8LExKTWOclHezN/NO/HOXjwIDExMQwePJh33nmn2nZ7\ne3vy8/Px9vb+S/028qeffkKtVmu0U1XPy9bWFqgse0FBQa1t/ST29vYolUrOnDnz2FXVq66rhYVF\ntS8OdVWX6y/UTszxCfWqqsf18BDn9evXWb16ta6KVI2vry8HDx7kxx9/lNKuX7/Oxo0baz22vLyc\nu3fvaqQ1a9YMa2trbt++DUC3bt2wtrbmH//4B6WlpdXO8fDQW9XwmDbDX9rkXZMrV65IdzumpaXV\nuE9wcDDl5eUkJydX21ZRUaGz4blLly6xdetW6XVpaSkrVqzA3t4eJycnoLLsly5dYvny5dWOLysr\n0+qpOAEBAejp6ZGYmFhtVKKqh9a/f3+aNGnCxx9/TEVFRbVz1GU4+Pdcf0F7oscn1KsBAwaQmZlJ\ncHAwgwcP5ubNmyxduhQrKytu3Lih6+IBMGXKFDZu3MigQYMYO3YsRkZGLF26FDs7O06cOPHEb+E3\nb97Ew8ODgIAAXFxcaNq0Kfv372ffvn1ST8rAwID09HRCQ0Px9vYmLCyMli1bcuXKFfLy8mjcuDHZ\n2dkAdO7cGYDY2FiCgoIwNDSkd+/eNQ4tapP34+pbVFTE6NGj2bJli8Y2R0dHPDw88PX1JTw8nKSk\nJI4fP07Pnj0xNDTkf//7H5s3byYuLq7Oz1X9I5ycnJgwYQJHjx6lRYsWrFq1igsXLvDFF19I1yk8\nPJzNmzcTHR3Nnj176NatG0qlkrNnz7Jx40bWrl1b67NL27Zty6RJk1iwYAH+/v4MHDiQRo0a8f33\n32NmZsa8efMwMzMjKSmJCRMm4OPjQ0hICObm5ly6dImvv/4aDw8PFixY8LvqZ2pqir29PWvXrsXG\nxgYzMzPatGkjvS+EuhGBT6hXffv2JS0tjbS0NGJiYrC2tiY6OhpDQ0OmTJmi6+IB0Lp1a7766iti\nYmJITk7GwsKCqKgo1Go1J06ceOJQn4mJCW+99Ra5ubls3boVpVKJnZ0dCQkJjB07VtqvV69e5OTk\nkJyczD//+U9KS0tRKBR4eHjw1ltvSftV/WZs2bJl7NixA5VKxY4dO2oMfNrm/aiqnkhCQkK1bRER\nEXh4eACQlpZGly5dyMrKIi4uDgMDA2xsbHjjjTekO2vrm5OTE/Pnz2fWrFmcPXsWGxsbMjIyCAgI\nkPbR19dnzZo1pKens2bNGrZs2YKxsTGtW7cmKipK6hnWZtasWdjb25ORkUF8fDzGxsa4uLgQHBws\n7TNs2DCsrKxITU1l4cKFPHjwgJYtW+Lt7U14eHid6rh48WLee+893n//fe7fv09ERIQIfH+QeFan\nIGhp8uTJZGdnc/HiRTH38hfg7OxM165da3zqjyA8iZjjE4QalJWVabwuKipi/fr1dO/eXQQ9QXjG\niaFOQahB79696dOnD05OTly9epVly5ZRVlbGu+++q+uiCYLwB4nAJwg16Nu3L9u2beOXX35BX18f\nd3d3MjIyNJ76IgjCs0nM8QmCIAiyIub4BEEQBFkRgU8QBEGQFRH4BEEQBFkRgU8QBEGQFRH4BEEQ\nBFkRgU8QBEGQlf8DC4SxhC2b6aUAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9shVAE4xmuz6",
        "colab_type": "text"
      },
      "source": [
        "# Exercises\n",
        "\n",
        "Below are a few suggested exercises that may help improve your skills.\n",
        "\n",
        "**TODO**\n",
        "- Make some exercises..."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3K9SaAKaRAgc",
        "colab_type": "text"
      },
      "source": [
        "# Extra"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "mcMN7x2tRCdF",
        "colab_type": "text"
      },
      "source": [
        "## Model Performance Differences\n",
        "\n",
        "Its worth noting that how to evaluate a models performance for seizure detection can change between different authors...\n",
        "\n",
        "**TODO**\n",
        "- Include some of the bits from my writing below into the tutorial discussing how different authors define metrics and which are good and bad.\n",
        "- Show how different definitions of a true positive can change a models reported performance on the TUH data\n",
        "\n",
        "---\n",
        "-\tVarsavsky et al. (2011)<sup>1</sup> propose a positive detection should be reported when an algorithm flags a section of EEG, with detection's within 60 seconds of each other grouped to avoid over-representation. A true positive should be reported when a positive detection occurs within time marked seizures by experts, or reported as true if within 60 seconds of onset and offset; due to the ambiguity of onset/offset times of seizures<sup>2</sup>. A false negative is proposed to be when a seizure, marked by the expert, goes undetected and a false positive reported when a positive detection occurs outside of 3 minutes before and after a seizure, as this means epileptic activities leading up to a seizure are not counted as a false positive. From these evaluative definitions, formalised metrics can be defined. A true positive rate (TPR), also called sensitivity, should be reported to define the probability of a correctly identified seizure, and is calculated by dividing the number of true positives by the total number of seizures. The false positive rate (FPR) should also be reported to show the expected false positives that occur per hour of non-epileptic EEG. There is a trade-off between sensitivity and false positive rates as a detector that reports a seizure every moment will have 100\\% sensitivity but a high FPR, however one that reports no seizures will have a FPR of 0\\% but also a sensitivity of 0\\%<sup>3</sup>. Specificity is another measure like the false positive rate, as it describes the proportion of the record that is marked, however it is calculated by dividing the total false positive time by the total non-seizure time. Together with TPR, the FPR provides a measure of performance of the algorithm and specificity gives further information regarding the discriminatory ability of an algorithm; as specificity can be used to see if a TPR is only high due to marking large portions of the data.\n",
        "\n",
        "---\n",
        "1. Varsavsky2011e\n",
        "2. Wilson2003\n",
        "3. Onorati2017"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-EX0KJVwmvoI",
        "colab_type": "text"
      },
      "source": [
        "# License\n",
        "\n",
        "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">Creative Commons Attribution-NonCommercial 4.0 International License</a>."
      ]
    }
  ]
}